Ok, j'ai deux boutons dans la disposition linéaire:
<LinearLayout Android:id="@+id/linearLayout1"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent">
<Button Android:id="@+id/aktiviraj_paket"
Android:text="Aktiviraj"
Android:layout_height="40sp"
Android:layout_width="160sp"
Android:background="@drawable/my_border3"
Android:onClick="myClickHandle"></Button>
<Button Android:id="@+id/deaktiviraj_paket"
Android:text="Deaktiviraj"
Android:layout_height="40sp"
Android:layout_width="fill_parent"
Android:background="@drawable/my_border3"
Android:onClick="myClickHandle">
</Button>
</LinearLayout>
Le problème est donc que si j'utilise fill parent sur les deux boutons, ils sont l'un sur l'autre. J'ai donc fait le premier bouton 160sp width et le second est fill_parent. Si cela s’affiche sur un écran de 4 pouces ou moins, les boutons ont la même taille, mais si j’essaie sur une tablette (10 pouces), le premier bouton reste large de 160 sp et le second est étiré jusqu’à la fin de l’écran (parce que fill_parent). Puis-je faire cela, afin que les deux boutons puissent être de taille égale, quelle que soit la taille de l'écran?
Utilisez Android:layout_weight="1"
sur les deux Button
s. Définissez Android:layout_width="0dp"
sur les deux. Étant donné que les deux boutons ont désormais une pondération égale, ils auront désormais chacun la moitié de la largeur du parent.
Vous pouvez en savoir plus ici: http://developer.Android.com/guide/topics/ui/layout/linear.html
Si ce que vous cherchez à faire est de faire en sorte que tous les boutons aient la largeur du bouton le plus large, le réglage des poids ne fera pas cela. Au lieu de cela, vous pouvez mettre tous les boutons dans un TableLayout:
<TableLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<TableRow
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/short_text" />
</TableRow>
<TableRow
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<Button
Android:id="@+id/button2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/enter_manually" />
</TableRow>
</TableLayout>
Cette disposition affichera 2 boutons superposés, de même largeur.
régler à chaque bouton:
Android:layout_weight="0.5"
Android:layout_width="0dp"
Display display=getWindowManager().getDefaultDisplay();
int width=display.getWidth();
btn1.setWidth(width/2);
btn2.seTwidth(width/2);
Définissez quoi que ce soit dans le fichier XML, puis commencez par trouver la largeur du périphérique, puis définissez la moitié de la largeur sur les deux boutons Maintenant, sur chaque appareil, ils auront exactement la même apparence
<LinearLayout
Android:id="@+id/layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="horizontal" >
<Button
Android:id="@+id/button1"
Android:layout_width="match_parent"
Android:layout_height="40dp"
Android:layout_weight="1"
Android:text="One" />
<Button
Android:id="@+id/button2"
Android:layout_width="match_parent"
Android:layout_height="40dp"
Android:layout_weight="1"
Android:text="Two" />
</LinearLayout>
Android:layout_weight
est utilisé pour attribuer un espace pour les boutons ou un montant équivalent pour chaque enfant de LinearLayout.
Remarque: cela ne fonctionne que sur une disposition linéaire.
Android:layout_weight="0.5"
Android:layout_width="0dp
ça marche
Cela fonctionne:
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<Button
Android:layout_width="0dp"
Android:layout_weight="0.5"
Android:layout_height="wrap_content"
Android:text="my btn 1"/>
<Button
Android:layout_width="0dp"
Android:layout_weight="0.5"
Android:layout_height="wrap_content"
Android:text="my btn 2"/>
</LinearLayout>
Définir Android: layout_weight = "1" dans la présentation qui la contient La présentation linéaire doit avoir Android: orientation définie sur horizontale. Et puis les boutons intérieurs devraient avoir les éléments suivants:
Android: layout_width = "0dp"
Android: layout_weight = "0.5"