2014-10-24 9 views
18

Ich habe eine Aktivität in meinem Manifest, die ich mit einem Dialogdesign verwendet habe. Ich kann nicht finden, wie man das in AppCompat Bibliothek ersetzt.Verwenden eines materialbasierten Dialogfelddesigns mit AppCompat

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

Gibt es ein materialbasiertes Äquivalent?

+0

meine Antwort auf Ihre andere Frage sehen, welche verwenden wahrscheinlich für dich arbeiten http://stackoverflow.com/questions/26595128/appcompat-dialog-theme-with-mis-colored-titlebar -bug/27069935 – Mick

Antwort

24

Es gibt kein Material auf der Basis Thema für einen Dialog in AppCompat noch here

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

Antwort

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

-Update finden Sie unter:

In Version 22.1 der Support Library können Sie nun das Material Dialog Stil erhalten, indem AppCompatDialog

+0

Frage mich, ob es vor der offiziellen Nov 3 Release – KickingLettuce

+0

geschehen wird Da Google so etwas noch nicht veröffentlicht habe, habe ich dafür eine Bibliothek erstellt: github.com/AndroidDeveloperLB/MaterialStuffLibrary –

+0

@KickingLettuce aus Neugier , wo kann man zukünftige Release-Daten von AppCompat sehen, und vielleicht Notizen darüber, was sich geändert hat? Ich kann nichts Ähnliches finden. – natario

0

mit für Sie Dies sollte funktionieren: https://github.com/afollestad/material-dialogs

Ich benutzte es, den Dialog in einem DialogFragment, zu bauen mit benutzerdefinierten Stile angewendet. Funktioniert super.

+0

freigegeben, wo Sie den Hintergrund des Titels auf dem ändern konnten Dialoge? – Daniel

+0

Es gibt keinen Hintergrund für den Titel, es ist der Hintergrund der ganzen Sache: https: // github.com/hyperboria/android/pull/21 (Bild unten) – benhylau

+0

Ich konnte es tun. – Daniel

52

Java-Code

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(); 

Verwenden Sie dieses Thema

<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> 

Import Unterstützung v7 Warndialog

import android.support.v7.app.AlertDialog; 

Ausgabe wie diese,

enter image description here

+0

Schön !! Ich verwende eine Liste im Alarmdialog, scheint keine Möglichkeit zu sein, die Textfarbe für das Listenelement zu ändern? Ich habe versucht, Textfarbe sekundäre und Liste Artikel, aber hat keine Wirkung! – User3

+0

Was ist, wenn das Dialogfeld DialogFragment erweitert, wie mit dem Fehler "NullPointerException: Versuch, virtuelle Methode aufrufen 'void android.support.v4.widget.NestedScrollView.setFocusable (boolean)' auf eine Null-Objektverweis"? –

+1

Oh mannnn! Du bist unglaublichggggggggg .. Wo warst du für die letzten 3 Stunden habe ich versucht dich zu finden: D. –

7

die neueste AppCompat Bibliothek

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

und in Manifest Verwenden Sie das folgende Thema

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