86 votes

Ajout d'espaces vides à la mise en page

J'essaie de créer des lignes vides dans Android. Voici ce que j'ai fait :

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="\n\n"

J'aimerais savoir s'il existe une meilleure solution ? Merci de votre compréhension.

1 votes

Rembourrage ? Les marges ? Il serait utile de voir l'ensemble de la mise en page, car il s'agit d'un problème spécifique aux différentes mises en page.

181voto

radley Points 1053

Utilice Space o View pour ajouter un espace spécifique. Pour 30 pixels de densité verticale :

<Space
  android:layout_width="1dp"
  android:layout_height="30dp"/>

Si vous avez besoin d'une solution flexible pour remplir l'espace, utilisez View entre les éléments d'un LinearLayout :

<View
  android:layout_width="1dp"
  android:layout_height="match_parent"
  android:layout_weight="1"/>

o

<View
  android:layout_width="1dp"
  android:layout_height="0dp"
  android:layout_weight="1"/>

Cela fonctionne pour la plupart des mises en page de l'API 14 et des versions ultérieures, à l'exception des widgets (utilisez FrameLayout à la place).

[Mise à jour 9/2014 pour l'utilisation de l'espace, conseil de @Sean].

0 votes

Fill_parent est obsolète, j'ai donc mis à jour avec match_parent. De plus, 0dip est recommandé dans de nombreux cas plutôt que match_parent.

0 votes

Existe-t-il un moyen d'y parvenir de manière programmatique ? Est-ce que cela fonctionne de la même manière que LinearLayout mais en remplaçant LinearLayout par View ?

0 votes

Merci, j'ai utilisé l'espace tel qu'il est créé pour remplir les espaces supplémentaires.

29voto

CaspNZ Points 4357

Si vous n'avez pas besoin que l'écart soit exactement de 2 lignes, vous pouvez ajouter une vue vide comme ceci :

    <View
        android:layout_width="fill_parent"
        android:layout_height="30dp">
    </View>

0 votes

@wizurd Les widgets ne peuvent pas utiliser View, utilisez FrameLayout à la place de View.

0 votes

Ce ne sera pas exactement deux lignes de haut car la hauteur des lignes dépend évidemment de la taille du texte.

0 votes

Yep. C'est ce que j'ai dit dans ma réponse.

19voto

Mina Fawzy Points 13122

Voir si vous avez besoin de changer la couleur de l'arrière-plan , L'espace si ce n'est pas le cas .

Cela ne signifie pas qu'il faille changer l'arrière-plan de la vue.

<View
    android:layout_width="match_parent"
    android:layout_height="20dp"
    android:background="@color/YOUR_BACKGROUND">
</View>

ou Espace

<Space
        android:layout_width="match_parent"
        android:layout_height="20dp"
         />

3 votes

Votre conseil concernant l'utilisation de View et de Space a résolu mon problème d'impossibilité d'afficher une couleur d'arrière-plan. Je vous remercie.

1 votes

Merci ! Je m'interrogeais sur la couleur de fond de l'espace.

16voto

Sean Points 2329

Une réponse actualisée : Depuis l'API 14, vous pouvez utiliser la vue "Espace", comme décrit dans la documentation .

Space est une sous-classe légère de View qui peut être utilisée pour créer des espaces entre les composants dans les mises en page générales.

3 votes

Un exemple pour ceux qui s'interrogent : <Space android:layout_width="fill_parent" android:layout_height="10dp" />

0 votes

La classe Space étend View, et est donc plus lourde qu'une View

5voto

hemant Points 22

Si vous voulez donner de l'espace entre la mise en page, c'est la façon d'utiliser l'espace. Si vous enlevez la marge, le texte n'apparaîtra pas. L'utilisation du texte à l'intérieur de l'espace pour apparaître n'est pas une bonne approche. J'espère que cela vous aidera.

<Space
        android:layout_width="match_content"
        android:layout_height="wrap_content"
        android:layout_margin="2sp" />

1 votes

Il s'agit d'une vue très légère, c'est pourquoi nous devons utiliser Espace au lieu de Vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X