2016-05-26 16 views
0

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: enter image description here

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?

+0

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

+0

@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. –

+0

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

Antwort

2

Dies ist ein bekanntes Problem in N DP. Siehe https://code.google.com/p/android/issues/detail?id=205765

Es ist ein Plattformproblem. Sie müssen das in Ihrer App nicht umgehen.

+1

Wenn möglich, könnten Sie das Problem bitte erneut lösen? Es ist im Moment als freigegeben gekennzeichnet, was bedeutet, dass es möglicherweise nicht angesprochen wird. Vielen Dank! – CommonsWare

+0

OP muss unter https://developer.android.com/preview/bug ein neues Problem einreichen und entsprechendes Beispielprojekt, Betriebssystemversion usw. einbeziehen. – alanv