2016-05-26 5 views
0

問題アンドロイドN:ProgressDialogとAlertDialog表示の問題

私はアプリの複数の場所でAlertDialogProgressDialogを使用しています。 Android N Previewの下にAndroidバージョンでうまく表示されています。しかし、Android Nプレビュー(Nexus 5XのNDP3)でテストしたところ、半透明の背景は画面全体をカバーしていないようです。

アンドロイドNで画面全体をカバーしていないダイアログの半透明の背景: enter image description here

これは私が活動してダイアログを作成しています方法です。ここで

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

は、活動のテーマであります:

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

質問

これはAndroid Nの問題か、Android N以上に組み込む必要があるAPIで変更されていますか?

+0

設定変更を処理するための 'DialogFragment'を使用している以外は、この問題に関連してあなたのコードはOKであるようです。このアクティビティで使用されているテーマに対話関連の何かをしていますか? – CommonsWare

+0

@CommonsWareコメントをいただきありがとうございます。アプリは今のところ肖像画だけですが、とにかく 'DialogFragment'を使うべきです。テーマのほとんどはActionBarや色などです。あなたの親切な参照のための質問にそれを含めました。 –

+0

私はあなたの問題の原因として私を襲っているそのテーマには何も見ません。つまり、[このサンプルアプリケーション](https://github.com/commonsguy/cw-omnibus/tree/master/Dialogs/DialogFragment)はNexus 6とNexus 9(それぞれNDP3を実行している)上で正常に動作します。 – CommonsWare

答えて

2

これはN DPの既知の問題です。 https://code.google.com/p/android/issues/detail?id=205765

プラットフォームの問題です。あなたのアプリでこれを回避する必要はありません。

+1

可能であれば、問題を再度開いてください。現時点ではリリースされているとマークされているため、対処できない可能性があります。ありがとう! – CommonsWare

+0

OPは、https://developer.android.com/preview/bugに新しい問題を提出し、関連するサンプルプロジェクト、OSバージョンなどを含める必要があります。 – alanv

関連する問題