web-dev-qa-db-fra.com

Ajout d'espaces vides à la mise en page

J'essaie de créer des lignes vides dans Android. Voici ce que je faisais:

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

Je veux savoir s'il y a un meilleur moyen? Merci

70
Qwertyfshag

Utilisez Space ou View pour ajouter une quantité d'espace spécifique. Pour 30 pixels de densité verticale:

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

Si vous avez besoin d’un espace de remplissage flexible, utilisez View entre les éléments d’une variable LinearLayout:

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

ou

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

Cela fonctionne pour la plupart des dispositions d'API 14 et supérieures, à l'exception des widgets (utilisez plutôt FrameLayout).

[Mis à jour le 9/2014 pour utiliser l'espace. Astuce de chapeau à @Sean]

147
radley

Si vous n'avez pas besoin que l'intervalle ait exactement 2 lignes, vous pouvez ajouter une vue vide comme ceci: 

    <View
        Android:layout_width="fill_parent"
        Android:layout_height="30dp">
    </View>
26
Caspar Harmer

Une réponse mise à jour: Depuis l’API 14, vous pouvez utiliser la vue "Espace", comme décrit dans la documentation .

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

13
Sean

Voir si vous avez besoin de changer de couleur d'arrière-plan, Espace sinon.

cette dose signifie que vous devez changer le fond de la vue.

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

ou de l'espace 

<Space
        Android:layout_width="match_parent"
        Android:layout_height="20dp"
         />
7
Mina Fawzy

si vous voulez donner l’espace entre les dispositions, c’est la manière de les utiliser. si vous supprimez la marge, elle n'apparaîtra pas.utiliser du texte dans l'espace pour apparaître n'est pas une bonne approche . espérons que cela aide.

<Space
        Android:layout_width="match_content"
        Android:layout_height="wrap_content"
        Android:layout_margin="2sp" />
4
Hemant Shori
<View
    Android:layout_width="fill_parent"
    Android:layout_height="30dp"
    Android:background="#80000000">
</View>
3
selva_pollachi

Je suis fortement en désaccord avec l'approche de CaspNZ.

Tout d'abord, cette vue invisible sera mesurée car il s'agit de "fill_parent". Android va essayer de calculer la bonne largeur de celui-ci. Au lieu de cela, un petit nombre constant (1dp) est recommandé ici.

Deuxièmement, View devrait être remplacé par une classe plus simple Space, une classe dédiée à la création d'espaces vides entre les composants de l'interface utilisateur pour une vitesse plus rapide.

2
Ian Wong

essaye ça

dans layout.xml:

<TextView
        Android:id="@+id/xxx"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:textAppearance="?android:attr/textAppearanceLarge"
        Android:text="@string/empty_spaces" />

dans strings.xml:

<string name="empty_spaces">\t\t</string>

ça a fonctionné pour moi

2
Rana Osama

Ceci peut être réalisé en utilisant space ou view .

Space est léger mais peu flexible. 

Vue occupe une zone rectangulaire à l'écran et est responsable du dessin et de la gestion des événements. La vue est plus personnalisable, vous pouvez ajouter un arrière-plan, dessiner des formes comme un espace.

Espace d'exécution:  

(Exemple: espace pour 20 pixels de densité verticale et 10 pixels de densité horizontale)

<Space
  Android:layout_width="10dp"
  Android:layout_height="20dp"/>

Vue d'implémentation:

(Exemple: Affichage pour 20 pixels de densité verticale et 10 pixels horizontaux, y compris une couleur d'arrière-plan)

  <View
       Android:layout_width="10dp"
       Android:layout_height="20dp"
       Android:background="@color/bg_color"/>

Espace pour le formatage de chaîne à l'aide d'une entité HTML:

&#160; pour les espaces non cassables .&#032; pour les espaces normaux.

il existe un meilleur moyen de le faire. Utilisez simplement le code ci-dessous et modifiez-le selon vos besoins

     <Space
            Android:layout_width="wrap_content"
            Android:layout_height="32dp"
            Android:layout_column="0"
            Android:layout_row="10" />

si vous utilisez avec le layoout de la grille, utilisez uniquement 

 Android:layout_row="10" />
0
Ashad Nasim

ajoutez simplement la balise weightSum à linearlayout à 1 et, pour la vue correspondante située en dessous, indiquez layout_weight à 0,9, ce qui créera un espace entre les vues. Vous pouvez expérimenter les valeurs pour obtenir la valeur appropriée pour vous

0
Hari Lee

Les réponses précédentes n'ont pas fonctionné dans mon cas. Cependant, créer un élément vide dans le menu le fait.

<menu xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:Android="http://schemas.Android.com/apk/res/Android">
  ...
  <item />
  ...
</menu>
0
AlexL

Vous trouverez ci-dessous un moyen simple de créer une ligne vierge avec une taille de ligne ..__ Ici, nous pouvons ajuster la taille de la ligne vierge .

           <TextView
            Android:id="@id/textView"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:textSize="5dp"/>
0
Sunil

D'accord avec toutes les réponses ...... aussi,

    <TextView Android:text=""
              Android:layout_width="match_parent"
              Android:layout_height="30dp"
              Android:layout_weight="2" />

devrait fonctionner :) Je plaisante avec les autres, car TextView est mon préféré (perte de mémoire cependant!)

0
ha9u63ar