Sto creando una finestra di dialogo sul tema Holo e desidero seguire il modo predefinito di visualizzazione dei pulsanti del sistema operativo. Finora ho creato la finestra di dialogo ma i pulsanti non vengono visualizzati come nelle app eseguite in Holo per ICS. Come posso fare questo? mio destinato aspetto & sensazione è e sono in grado di raggiungere fino a qui
Come pulsanti della finestra di dialogo stile Holo per Android
risposta
un po 'in ritardo, ma forse qualcuno è ancora interessato a questo.
questo funziona abbastanza bene per me.
...
<!--
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'attività che carica questo layout ha bisogno il tema Holo.Dialog.
android:theme="@android:style/Theme.Holo.Dialog"
È possibile impostare il tema attraverso l'XML manifest di Android o all'interno onCreate della attività con setTheme(android.R.style.Theme_Holo);
Le dimensioni pulsanti non è legato al tema stesso. La dimensione dipende dalle tue definizioni xml. Nell'immagine hai inviato, sembra che i pulsanti hanno ricevuto il tema Holo quindi non c'è niente di sbagliato qui ...
Ecco un layout XML che allungherà i pulsanti per riempire l'intera larghezza di dialogo:
<?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>
Mi dispiace ma questo non funziona. Concordo sulla larghezza, ma non riesco a ottenere l'aspetto piatto del pulsante nella finestra di dialogo – kishu27
@ kishu27 Quindi l'XML che ho scritto qui ha fissato la larghezza dei pulsanti ma i pulsanti non hanno ancora il layout piatto del tema Holo? –
purtroppo nemmeno la larghezza :) Mi dispiace .. Ho scoperto lo stile del pulsante piatto e pubblicherò la risposta non appena avrò risolto il problema della larghezza. Stranamente, il tuo codice dovrebbe funzionare ma non funziona e non riesco a pensare ad altro per la larghezza – kishu27
Questo è ciò che funziona:
<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 proprietà style="@android:style/Widget.Holo.Light.Button.Borderless.Small"
dà l'aspetto piatto e sentire, e la distribuzione del peso del 50% a causa della combinazione di 100 $ dimensionamento delle LinearLayout
da android:layout_width="match_parent" and
android: layout_weight = "1" `per i pulsanti
Grazie per la risposta! Ti chiedi come o se sei riuscito a ottenere il bordo grigio chiaro attorno ai pulsanti come mostrato nel tuo primo screenshot? Grazie – Dittimon
Non ho capito con questo markup da solo. Ero di fretta ... molto brutta fretta per completare il progetto e non mi interessava capire perché non l'avevo capito e non l'ho corretto. In poche settimane, hanno chiesto di spostarlo da ICS a GB e ho dovuto creare manualmente tutto questo così sprecato e dimenticato da tempo :) – kishu27
ma sì, se dovessi farlo di nuovo, andrei a scaricare uno dei gli esempi dal sito Android Dev e check it out – kishu27
Piccola correzione: probabilmente dovresti usare dividerHorizontal nella primissima vista del tuo esempio. – dimsuz
state attenti, divisoreHorizontal non è supportato prima dell'API 11. –
@dimsuz Perché il 'dividerHorizontal'? – KevinOrr