Android layout_width & layout_height, comment ça marche?
Je suis en train de créer une interface, où deux ou plusieurs boutons seront affichés à l'utilisateur, si un bouton est cliqué, certaines Mises en page seront affichés à lui. Je suis l'aide de la SlidingDrawer à cette fin.
Bien, je suis confus par layout_width & layout_height propriétés.
Si je définissez les propriétés comme ci-dessous, seul le "Poignée 1" est affiché sur l'écran.
android:layout_width="fill_parent" android:layout_height="wrap_content"
Honnêtement dire, je n'ai pas suffisamment de connaissances sur ces deux propriétés. Quelqu'un peut s'il vous plaît partager ses connaissances à leur sujet?
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SlidingDrawer android:id="@+id/slidingDrawer1"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:handle="@+id/handle1"
android:content="@+id/content1">
<Button android:text="Handle 1" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/handle1"></Button>
<LinearLayout android:id="@+id/content1"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="center"
android:background="#FF444444">
<Button android:text="Handle 1 Item 1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/item1"></Button>
</LinearLayout>
</SlidingDrawer>
<SlidingDrawer android:id="@+id/slidingDrawer2"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:handle="@+id/handle2"
android:content="@+id/content2">
<Button android:text="Handle 2" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/handle2"></Button>
<LinearLayout android:id="@+id/content2"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="center"
android:background="#FF444444">
<Button android:text="Handle 2 Item 1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/item2"></Button>
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
Avez-vous vérifié la documentation? Il est assez clair à mon humble avis.
Bonne question. J'ai été confus au sujet de ce il y a quelques mois quand j'ai commencé. Il donne quelques jours, et vous obtenez le coup de lui.
Bonne question. J'ai été confus au sujet de ce il y a quelques mois quand j'ai commencé. Il donne quelques jours, et vous obtenez le coup de lui.
OriginalL'auteur Yaqub Ahmad | 2012-01-02
Vous devez vous connecter pour publier un commentaire.
La
layout_width
etlayout_height
propriétés de la vue sont destinés à être utilisés par de son conteneur parent. Certains conteneurs ignorer l'un ou l'autre de ces; la plupart honneur. Vous devez consulter la documentation du conteneur (dans votre cas, SlidingDrawer) pour comprendre comment les valeurs seront utilisées.Vous ne vous montrez pas à la compléter main.xml, il est donc difficile de dire exactement ce qui ne va pas. Il serait également utile si vous avez posté une image de ce qui est mauvais.
MODIFIER
Après avoir vu l'intégralité de votre mise en page, je pense que le problème fondamental ici est que vous utilisez un LinearLayout pour contenir la SlidingDrawers. Comme le docs pour SlidingDrawer remarque, ils ont besoin d'être dans un FrameLayout ou un RelativeLayout (en fait, tout conteneur qui permet de multiples points de vue pour s'asseoir sur le dessus de l'un à l'autre).
Une autre possibilité est que la deuxième SlidingDrawer est placé directement sous la première. Essayez de changer la taille de la deuxième bouton (par exemple, rendre le texte plus) et voir si il perce de part et d'autre de la touche 1.
J'ai mis à jour ma réponse.
Un grand merci. Permettez-moi de le vérifier.
OriginalL'auteur Ted Hopp
fill_parent = match_parent, et cela signifie qu'il prend la largeur ou la hauteur (qui jamais bien, il est spécifié que) de "parent" conteneur
wrap_content signifie que la hauteur ou la largeur prend de la hauteur ou la largeur de "l'enfant"
Vous souhaitez utiliser des poids au lieu d'utiliser match_parent ou wrap_content généralement.
Lorsque vous utilisez des poids que vous souhaitez définir la largeur de 0dp.
Vous remplissez les parents deux fois. Essayez d'utiliser des poids au lieu de définir la largeur de la présentation de fill_parent. Aussi garder à l'esprit que fill_parent est obsolète; utilisation match_parent à la place. J'ai édité ma réponse, je peux donc vous montrer un exemple de ce.
OriginalL'auteur Reid
Je pense que vous essayez d'ajouter 2 Coulissant Tiroir.
La taille de la SlidingDrawer définit de combien d'espace le contenu occupera une fois sorti donc SlidingDrawer doivent généralement utiliser match_parent pour ses dimensionsin ce cas, un chevauchement de l'autre de sorte que vous ne pouvez pas voir le gestionnaire 2 .
Si vous définissez la visibilité "disparu" de la première SlidingDrawer vous pouvez voir l'Autre .
Mise à jour
Salut ,
S'il vous plaît essayez ce code peut-il vous aider à
Vérifier les mises à jour post ...
OriginalL'auteur loks