2

私はTabLayoutとFragmentsを使用するアプリケーションを持っていますが、最初のログイン画面は標準のアクティビティです。ログイン画面から警告ダイアログを表示すると、ダイアログの外観は、フラグメントの内側から表示するときとはまったく異なります。Android:AlertDialogのフラグメントが違って見える

enter image description here

私はalertDialogを表示するために使用したコード断片の内側からログイン画面

enter image description here

から

は、以下のクラス

です

// At the top of my activity I declare 
private final AlertDialogManager alertDialog = new AlertDialogManager(); 

// Then where I want to show one I use this 
alertDialog.showAlertDialog(MyActivity.this, "Title", "Message", false, false); 

私は以下を使用フラグメントの1を表示するには:私は、次を使用活動の1を表示するには

// At the top of my fragment I declare 
private final AlertDialogManager alertDialog = new AlertDialogManager(); 

alertDialog.showAlertDialog(getActivity(), "Title", "Message", false, false); 

私は完全に2になるだろう、なぜ誰もが説明できますActivity vs Fragmentから呼び出すとき、ダイアログの「テーマ」が異なりますか?私は困惑している。

ありがとうございます!

+0

2つの異なるバージョンのための私のマニフェストで宣言に次を追加する必要が判明しますか? – Blackbelt

+0

@Blackbelt - どうすれば確認できますか?私はcompileSdkVersionを23、minSdkVersionを19、targetSdkVersionを23としています - 私のbuild.gradle – Phil

+0

あなたがアプリケーションを実行しているデバイスを意味します。どのバージョンのAlertDialogを使用していますか? 'v7.app.AlertDialog'?インポートを確認してください – Blackbelt

答えて

2

サポートしている古いAPIのバージョンは何ですか? API 11以降でAlertDialogビルドを使用できるためです。古いバージョンをサポートしている場合は、テーマを設定する必要があります。

例:

ContextThemeWrapper theme; 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     theme = new ContextThemeWrapper(context, android.R.style.Theme_Holo_Light_Dialog_NoActionBar); 
    } 
    else { 
     theme= new ContextThemeWrapper(context, android.R.style.Theme_Light_NoTitleBar); 
    } 
    AlertDialog.Builder builder = new AlertDialog.Builder(theme); 

・ホープこのヘルプ。

+0

私のminSdkVersionは19、私のtargetSdkVersionは23、私のcompileSdkVersionは23 – Phil

+0

多分、別のスタイルを呼び出す際に問題があります。今は別の解決策を想像できません。 –

0

は、私は私のログイン活動のAndroidの

android:theme="@style/Theme.AppCompat.NoActionBar" 
関連する問題