2

ダイアログの断片を示しました。やりましたが、背景(テーマ)の色をグレーから白に変更したいです。

ここに画像の説明を入力 私のダイアログコード:

public class TestDialog extends DialogFragment {

public static TestDialog newInstance() {
    return new TestDialog();
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialog);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return container;
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            //setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialog);
    LayoutInflater inflater = getActivity().getLayoutInflater();
    builder.setView(inflater.inflate(R.layout.dailog_fragment, null))
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {
        }
    })
    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            TestDialog.this.getDialog().cancel();
        }
    });      
    return builder.create();
}

}

4

3 に答える 3

1

これを使って

setStyle(DialogFragment.STYLE_NO_TITLE, R.style.MyDialog);

次に、カスタムMyDialogスタイルを作成します。

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="MyDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowBackground">@color/orange_transparent</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowTitleStyle">@null</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:gravity">center</item>
    </style>

</resources>

にある必要があることに注意してくださいstyle.xml

于 2013-10-04T10:54:09.177 に答える
0

ダイアログ アクティビティのアクティビティ定義であるマニフェスト ファイルに、次のようにandroid:theme属性を追加します。

<activity
        android:name=".YourActivityName"

        android:theme="@styles/style"

        />
于 2013-10-04T11:07:10.527 に答える
0

私は解決策を得ました:

以下のスタイルテーマを使用して、白い背景色を設定しています。

<style name="MyFragment">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowTitleStyle">@null</item>
        <item name="android:colorBackground">@android:color/white</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>

Holo テーマも使用できます

AlertDialog.Builder builder = new AlertDialog.Builder(ProfileEditActionBar.this, AlertDialog.THEME_HOLO_LIGHT);
于 2013-10-16T06:22:34.817 に答える