0

DialogFragment/AlertDialog にテーマを正しく適用できないようです。

コードは次のとおりです。

protected static class TabRenameDialogFragment extends DialogFragment
{

    public static TabRenameDialogFragment newInstance(long tabId, CashierActivity ca) {

        // create new dialogfragment and initialize items
        TabRenameDialogFragment trdf = new TabRenameDialogFragment();

        Bundle b = new Bundle();
        b.putLong("TAB_ID", tabId);

        trdf.setArguments(b);

        return trdf;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final DialogFragment fm = this;

        // set data
        final long id = getArguments().getLong("TAB_ID");

        return new AlertDialog.Builder(getActivity(), R.style.Theme_Styled_Dialog)
                // .setIcon(R.drawable.alert_dialog_icon)
                .setTitle("Rename " + cTabName)
                .setView(view)
                .setCancelable(true)
                .setPositiveButton("Set",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                        }
                    }
                ).setNegativeButton("Cancel", 
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            // nothing!
                        }
                    })
                .create();
    }

}

AlertDialog.Builder() の 2 引数コンストラクターを使用してテーマを設定しています。テーマを正しく設定しますが、ダイアログフラグメント自体の周りに奇妙な境界線が表示されます。これは、DialogFragment 内で AlertDialog のテーマを設定しているためだと思いますが、外側の部分を取り除く方法がわかりません。DialogFragment のスタイルを STYLE_NO_FRAME などに設定しようとしました。

ダイアログのバグ

前もって感謝します。

編集:

私が適用しているスタイルは次のとおりです。

<style name="Theme.Styled.Dialog" parent="@style/Theme.Sherlock.Light.Dialog">
    <item name="dropDownListViewStyle">@style/Widget.Styled.DropDownListStyle</item>
    <item name="android:dropDownListViewStyle">@style/Widget.Styled.DropDownListStyle</item>

    <item name="android:windowTitleStyle">@style/DialogWindowTitle.Styled</item>

    <item name="android:textColorPrimary">@color/bg_color_main</item>
    <item name="android:textColorPrimaryInverse">@color/bg_color_main_dark</item>
</style>

<style name="DialogWindowTitle.Styled" parent="@style/DialogWindowTitle.Sherlock.Light">
    <item name="android:textAppearance">@style/TextAppearance.Styled.DialogWindowTitle</item>
</style>

<style name="TextAppearance.Styled.DialogWindowTitle" parent="@style/TextAppearance.Sherlock.Light.DialogWindowTitle">
    <item name="android:textColor">@color/bg_color_main</item>
</style>
4

3 に答える 3