Ich habe gerade alle bewegt meine android.app.AlertDialog
zu android.support.v7.app.AlertDialog
.
Nach einigen Tests mit 4.X Emulatoren habe ich festgestellt, dass es für einen einfachen Dialog ausreicht, einfach den Import zu ändern. Aber für Multiple-Choice-Dialoge müssen Sie auch AppCompatDialog alert = builder.create();
tun, um die Material Design-Stil-Dialoge (auf 4.X) zu erhalten.
Um klar zu sein, wenn Sie einen einfachen Dialog wie diese haben: genügt
import android.support.v7.app.AlertDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
builder.setIcon(resId)
.setTitle(title)
.setMessage(msg)
.setCancelable(isCalncelable)
.setPositiveButton(btn1, listener1);
AlertDialog alert = builder.create();
alert.show();
Ändern der Import :)
Aber für eine Multi Auswahldialog, müssen Sie AppCompatDialog
verwenden wie folgt:
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Choose something")
.setPositiveButton(...)
.setMultiChoiceItems(mStringArray, mSelectedArray, SomeFragment.this);
AppCompatDialog alert = builder.create();
alert.show();
Dann bekommst du das schöne Material Design auf 4.X Geräten.
Jetzt ist der Spaß Teil!
Für einen Mehrauswahldialog, auf einem 5.x Gerät, die native Version (android.app.AlertDialog
) zeigt die Check-Boxen am , richtig Material Design spec folgenden links. Wenn Sie jedoch die Supportdialoge verwenden, werden die Kontrollkästchen unter der Nummer rechts angezeigt. WTF!
Auf lange Sicht, wenn Android 5+ Marktanteile gewinnt, sollten Sie wieder zu nativen Dialogen wechseln.
Bei der Verwendung von 'builder.setView (v)' für 'appcompatdialog' ist die Größe des Dialogs maximal, anstatt nur die Komponente zu umbrechen. Hier ist 'v' eine 'Recyclerview', die Variable Nr. der Elemente –
was soll ich tun, damit die Größe des Dialogs ändert sich nach Nr. von 'recyclerview' Artikeln? –