Problem:Android N: ProgressDialog und Alertdialog Anzeigeproblem
Ich AlertDialog
und ProgressDialog
an mehreren Stellen in der App. Sie werden gut mit Android-Versionen unter Android N Preview angezeigt. Wenn ich sie jedoch mit Android N Preview (NDP3 auf Nexus 5X) getestet habe, scheint der durchscheinende Hintergrund nicht den gesamten Bildschirm abzudecken.
Durchlässiger Hintergrund der Dialog nicht den ganzen Bildschirm in Android N abdeckt:
Dies ist, wie ich den Dialog in der Tätigkeit bin erstellen:
public static void showDialog(final Activity activity, final String title, final String message, final String positiveButtonText, final String negativeButtonText, final DialogInterface.OnClickListener positiveButtonListener, final DialogInterface.OnClickListener negativeButtonListener, final Boolean cancellable) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog.Builder alert = new AlertDialog.Builder(activity);
alert.setTitle(title);
alert.setMessage(message);
alert.setPositiveButton(positiveButtonText != null ? positiveButtonText : activity.getString(R.string.button_text_ok), positiveButtonListener);
alert.setNegativeButton(negativeButtonText != null ? negativeButtonText : activity.getString(R.string.button_text_cancel), negativeButtonListener);
if (cancellable != null) {
alert.setCancelable(cancellable);
} else {
alert.setCancelable(false);
}
//creating an alert dialog from our builder.
alertDialog = alert.create();
if (!activity.isFinishing() && alertDialog != null) {
alertDialog.show();
alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(ContextCompat.getColor(activity, android.R.color.black));
alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(ContextCompat.getColor(activity, android.R.color.black));
}
}
});
}
ist die Aktivität Thema :
<style name="AppTheme" parent="AppTheme.Base">
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>
<!-- Base application theme. Include the items here which are common to all version. -->
<style name="AppTheme.Base" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!--Customize Action Bar-->
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowActionBar">true</item>
<item name="actionBarStyle">@style/Theme.TradeRev.ActionBar</item>
<item name="android:actionBarStyle">@style/Theme.TradeRev.ActionBar</item>
<item name="colorPrimary">@color/light_green</item>
<item name="colorPrimaryDark">@color/green_title_bar</item>
<item name="colorAccent">@android:color/white</item>
<item name="actionMenuTextColor">@android:color/white</item>
<item name="android:actionMenuTextColor">@android:color/white</item>
<item name="android:homeAsUpIndicator">@drawable/button_back_up_navigation</item>
<!-- Title Text Color -->
<item name="android:textViewStyle">@style/AppTheme.Widget.TextView</item>
</style>
Frage:
Ist das ein Problem mit Android N oder hat sich etwas in den APIs geändert, die wir für Android N und höher integrieren müssen?
Abgesehen davon, dass Sie '' DialogFragment' 'nicht für Konfigurationsänderungen verwenden, scheint Ihr Code relativ zu diesem Problem in Ordnung zu sein. Machst du irgendetwas Dialog-bezogenes Thema in dem Thema, das von dieser Aktivität verwendet wird? – CommonsWare
@CommonsWare Danke für den Kommentar. Die App ist momentan nur Portrait, sollte aber 'DialogFragment' verwenden. Der größte Teil des Themas ist mit ActionBar und Farbe etc. Ich habe es in die Frage für Ihre freundliche Bezugnahme aufgenommen. –
Ich sehe nichts in diesem Thema, das mich als die Quelle Ihres Problems auffällt. Davon abgesehen verhält sich [diese Beispiel-App] (https://github.com/commonsguy/cw-omnibus/tree/master/Dialogs/DialogFragment) von mir normal auf einem Nexus 6 und einem Nexus 9, auf denen jeweils NDP3 läuft. – CommonsWare