Je crée une boîte de dialogue sur le thème Holo et je souhaite suivre la façon par défaut du système d'exploitation d'afficher les boutons. Jusqu'à présent, j'ai créé la boîte de dialogue, mais les boutons ne s'affichent pas de la même manière que dans les applications effectuées dans Holo pour ICS. Comment puis-je faire ceci? Mon look & feel est et je peux atteindre jusqu'ici
un peu tard, mais peut-être que quelqu'un est toujours intéressé par ça.
cela fonctionne assez bien pour moi.
...
<!--
EDIT: be carefull, "?android:attr/dividerHorizontal" is only supported since API 11
just avoid it in prior OSs.
-->
<View
Android:layout_width="fill_parent"
Android:layout_height="1dip"
Android:background="?android:attr/dividerHorizontal" />
<LinearLayout
style="?android:attr/buttonBarStyle"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:paddingTop="0dip"
Android:paddingLeft="2dip"
Android:paddingRight="2dip"
Android:measureWithLargestChild="true">
<Button
Android:id="@+id/cancel"
style="?android:attr/buttonBarButtonStyle"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:text="@Android:string/cancel"/>
<Button
Android:id="@+id/ok"
style="?android:attr/buttonBarButtonStyle"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:text="@Android:string/ok"/>
</LinearLayout>
...
l'activité qui charge cette mise en page nécessite le thème Holo.Dialog.
Android:theme="@Android:style/Theme.Holo.Dialog"
Voici ce qui fonctionne:
<LinearLayout
Android:id="@+id/buttonHolder"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
>
<Button
Android:id="@+id/cmdSignup"
style="@Android:style/Widget.Holo.Light.Button.Borderless.Small"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:text="@string/Signup" />
<Button
Android:id="@+id/cmdLogin"
style="@Android:style/Widget.Holo.Light.Button.Borderless.Small"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:text="@string/Login" />
</LinearLayout>
La propriété style="@Android:style/Widget.Holo.Light.Button.Borderless.Small"
donne un aspect plat et la répartition du poids à 50% est due à la combinaison de 100 $ de dimensionnement de LinearLayout
par Android:layout_width="match_parent" and
Android: layout_weight = "1" `pour les boutons
Vous pouvez définir le thème via le Android Manifest xml ou à l'intérieur de l'activité onCreate avec setTheme(Android.R.style.Theme_Holo);
La taille des boutons n'est pas liée au thème lui-même. La taille dépend de vos définitions xml. Dans l'image que vous avez envoyée, il semble que les boutons aient reçu le thème Holo donc il n'y a rien de mal ici ...
Voici une disposition xml qui étirera les boutons pour remplir toute la largeur de la boîte de dialogue:
<?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="wrap_content"
>
<LinearLayout
Android:orientation="horizontal"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="5dip"
>
<Button
Android:id="@+id/okButton"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:text="OK"
/>
<Button
Android:id="@+id/cancelButton"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:text="Cancel"
/>
</LinearLayout>
</LinearLayout>