2010-11-07 4 views
3

Les conseils Android Developer sur Creating a Custom Dialog spécifie une mise en page qui commence:Android: la définition des dimensions d'une boîte de dialogue (ce qui signifie « fill_parent » veut dire?)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/layout_root" 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="10dp" 
      > 

Si j'utilise ce code je reçois une boîte de dialogue qui se trouve au centre de l'écran avec environ 40 pixels de la vue sous-jacente visible de chaque côté.

Que signifie exactement "fill_parent" (pour la largeur et la hauteur)?

Répondre

0

Cela signifie en fait ce qu'il dit. Il remplit tout l'espace de son conteneur parent. Dans ce cas, moins 10dip de chaque côté (c'est-à-dire gauche, haut, droite, bas) en raison de l'attribut de remplissage. Si elle était définie sur wrap_content, elle ne prendrait que l'espace nécessaire pour afficher son contenu.

Voici plus d'informations sur fill_parent et ici sur le ViewGroup.LayoutParams.

+0

Mais "fill_parent" est spécifié pour la hauteur et la largeur, alors pourquoi la boîte de dialogue ne remplit qu'une petite partie de la hauteur verticale de l'écran? – prepbgg

+0

@ user250845: Sans voir de capture d'écran du problème, je ne peux pas le dire avec certitude, mais je suppose que la hauteur de vos parents LinearLayouts est définie sur une certaine dimension. –

+0

Je ne vois pas comment inclure des captures d'écran ici, j'ai donc envoyé ma réponse comme nouvelle réponse. – prepbgg

1

En réponse à Octavian Damiean, j'ai écrit une application en suivant le code défini dans Creating A Custom Dialog. J'ai mis le code java spécifié dans la méthode onCreate de l'application vide (après super.onCreate (...) et setContentView (...). Pour le faire fonctionner j'ai changé le code Java où il est dit "Contexte mContext = getApplicationContext(); » à « Contexte mContext = ceci; » et à la fin j'ai ajouté la ligne « dialog.show(); » pour afficher la boîte de dialogue

l'écran résultant ressemble à ceci:

. this

Bien que la hauteur et la largeur sont fixées à fill_parent la largeur est un peu plus petite que la largeur de l'écran et la hauteur est beaucoup plus petite que la hauteur de l'écran.

Je ne pense pas que le rembourrage fonctionne comme vous le suggérez. Changer de 10dip à 0dip ne fait aucune différence perceptible (il existe encore un écart entre le bord de l'écran et le bord de la boîte de dialogue.) Changement à 100 résultats dip dans cette:

alt text

Je pense ce remplissage affecte l'espacement des objets dans la vue plutôt que l'espacement de la vue dans son parent.

+0

Vous avez totalement raison de me méprendre sur le rembourrage. Désolé. Ce que je voulais dire serait la marge. –

Questions connexes