2014-10-24 11 views
18

Ho un'attività nel mio manifesto che ho utilizzato per lo stile con un tema di dialogo. Non riesco a trovare come sostituire questo nella libreria AppCompat.Utilizzo di un tema di dialogo basato sul materiale con AppCompat

<activity 
      android:name=".LoginActivity" 
      android:theme="@android:styles/Theme.Holo.Dialog" 
      android:configChanges="orientation|screenSize|keyboardHidden" 
      android:label="Login" > 

Esiste un equivalente basato sul materiale?

+0

Vedere la mia risposta alla tua altra domanda che sarà probabilmente funziona per te http://stackoverflow.com/questions/26595128/appcompat-dialog-theme-with-mis-colored-titlebar -bug/27069935 – Mick

risposta

24

Non c'è un tema a base materiale per una finestra di dialogo in AppCompat ancora, vedi here

Will appcompat automatically theme dialogs to look like the Lollipop version?

risposta

Not yet, but it's on the todo list.

Aggiornamento:

Nella versione 22.1 del Support Library è ora possibile ottenere lo stile di dialogo materiale utilizzando AppCompatDialog

+0

Mi chiedo se accadrà prima della versione ufficiale del 3 novembre – KickingLettuce

+0

Dal momento che Google non ha ancora pubblicato una cosa del genere, ho creato una libreria per questo: github.com/AndroidDeveloperLB/MaterialStuffLibrary –

+0

@KickingLettuce per curiosità , dove è possibile vedere le future date di rilascio di AppCompat e forse note su cosa è cambiato? Non riesco a trovare nulla di simile. – natario

0

questo dovrebbe funzionare per voi: https://github.com/afollestad/material-dialogs

ho usato per costruire la finestra di dialogo in un DialogFragment, con stili personalizzati applicati. Funziona alla grande.

+0

sei riuscito a cambiare lo sfondo del titolo sul finestre di dialogo? – Daniel

+0

Non c'è uno sfondo per il titolo, è lo sfondo dell'intera cosa: https: // github.com/hyperboria/android/pull/21 (immagine in basso) – benhylau

+0

Sono stato in grado di farlo. – Daniel

52

codice Java

AlertDialog.Builder builder = 
        new AlertDialog.Builder(SecondActivity.this, R.style.AppCompatAlertDialogStyle); 
      builder.setTitle("SCRUM"); 
      builder.setMessage("In the SCRUM methodology a sprint is the basic unit of development. Each sprint is preceded by a planning meeting, where the tasks for the sprint are identified and an estimated commitment for the sprint goal is made, and followed by a review or retrospective meeting where the progress is reviewed and lessons for the next sprint are identified. During each sprint, the team creates finished portions of a product....."); 
      builder.setPositiveButton("OK", null);//second parameter used for onclicklistener 
      builder.setNegativeButton("Cancel", null); 
      builder.show(); 

utilizzare questo tema

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorAccent">#FFCC00</item> 
    <item name="android:textColorPrimary">#FFFFFF</item> 
    <item name="android:background">#5fa3d0</item> 
</style> 

Importa supporto v7 avviso dialogo

import android.support.v7.app.AlertDialog; 

output come questo,

enter image description here

+0

Bello !! Sto usando un elenco nella finestra di dialogo di avviso, non sembra in alcun modo modificare il colore del testo per la voce di elenco? Ho provato il colore del testo secondario e elencato l'oggetto, ma non ha alcun effetto! – User3

+0

Cosa succede se la finestra di dialogo estende DialogFragment, come gestire l'errore "NullPointerException: Tentativo di invocare il metodo virtuale" void android.support.v4.widget.NestedScrollView.setFocusable (booleano) "su un riferimento oggetto nullo"? –

+1

Oh mannnn! Sei stupefacente. Da dove sei stato nelle ultime 3 ore ho cercato di trovarti: D. –

7

utilizzare l'ultima biblioteca AppCompat

compile 'com.android.support:appcompat-v7:23.2.1'// or any version greater than 22.1 

e nel manifesto utilizzare il seguente tema

android:theme="@style/Theme.AppCompat.Light.Dialog"