Android-Установить стиль для диалогового фрагмента

я хочу создать диалог фрагмента с черным windowBackground вокруг него, но когда я добавляю стиль, у меня есть черная рамка вокруг фрагмента. знает ли кто-то, почему этот кадр появляется в моем фрагменте:

Пример фрагмента

это мой фрагмент xml:

  `  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    
    android_id="@+id/tocLayout"
    android_layout_width="wrap_content"
    android_layout_height="wrap_content"
    android_background="@drawable/clean_backgroung_pop_up_ltr"
    android_padding="20dp">

    <LinearLayout
        android_layout_width="match_parent"
        android_layout_height="match_parent"
        android_background="@drawable/settings_border"
        android_orientation="vertical">

        <FrameLayout
            android_id="@+id/title_layout_settings"
            style="@style/reader_dialog_title">

            <TextView
                android_id="@+id/title_txt_settings"
                android_layout_width="wrap_content"
                android_layout_height="match_parent"
                android_layout_gravity="center"
                android_layout_weight="4"
                android_gravity="center"
                android_text="@string/menu_settings"
                android_textColor="@color/white_color"
                android_textSize="@dimen/global_text_size" />

            <ImageView
                android_id="@+id/imvClose"
                android_layout_width="@dimen/global_close_button_width"
                android_layout_height="match_parent"
                android_layout_gravity="center_vertical|right"
                android_layout_weight="1"
                android_padding="@dimen/global_padding"
                android_src="@drawable/icon_close_window" />

            <ImageView
                android_id="@+id/title_txt_settings_icon"
                android_layout_width="@dimen/global_image_width"
                android_layout_height="match_parent"
                android_layout_gravity="center_vertical|left"
                android_layout_weight="1"
                android_padding="@dimen/global_padding"
                android_scaleType="center"
                android_src="@drawable/toolbar_settings_button_heb" />
        </FrameLayout>

        <LinearLayout
            android_layout_width="match_parent"
            android_layout_height="match_parent"
            android_orientation="vertical"
            android_paddingLeft="@dimen/global_margin_s"
            android_paddingRight="@dimen/global_margin_s">

            <FrameLayout
                android_id="@+id/tts_layout_settings"
                android_layout_width="@dimen/settings_screen_popover_width"
                android_layout_height="@dimen/settings_screen_layout_height"
                android_gravity="center_horizontal"
                android_longClickable="true">

                <ImageView
                    android_layout_width="wrap_content"
                    android_layout_height="@dimen/settings_screen_seek_bar_hight"
                    android_layout_centerHorizontal="true"
                    android_layout_gravity="center"
                    android_background="@drawable/tts_rabbit_turtle"
                    android_gravity="center_horizontal" />

                <SeekBar
                    android_id="@+id/tts_speed_settings_seek"
                    android_layout_width="match_parent"
                    android_layout_height="wrap_content"
                    android_layout_centerHorizontal="true"
                    android_layout_gravity="center"
                    android_layout_marginLeft="@dimen/global_book_reader_menus_margin_l"
                    android_layout_marginRight="@dimen/global_book_reader_menus_margin_l"
                    android_max="4"
                    android_maxHeight="1dp"
                    android_progressDrawable="@drawable/seek_bar"
                    android_thumb="@drawable/sliderknob_23" />
            </FrameLayout>

            <View
                android_id="@+id/setting_seperator"
                android_layout_width="@dimen/settings_screen_popover_width"
                android_layout_height="1dp"
                android_layout_below="@id/tts_speed_settings_seek"
                android_background="#CECECE"
                android_drawablePadding="@dimen/global_margin_s" />

            <FrameLayout
                android_id="@+id/brightness_layout_settings"
                android_layout_width="@dimen/settings_screen_popover_width"
                android_layout_height="@dimen/settings_screen_layout_height">

                <ImageView
                    android_layout_width="wrap_content"
                    android_layout_height="@dimen/settings_screen_seek_bar_hight"
                    android_layout_centerHorizontal="true"
                    android_layout_gravity="center"
                    android_background="@drawable/bright"
                    android_gravity="center_horizontal" />

                <SeekBar
                    android_id="@+id/brightness_settings_seek"
                    android_layout_width="match_parent"
                    android_layout_height="wrap_content"
                    android_layout_gravity="center"
                    android_layout_marginLeft="@dimen/global_book_reader_menus_margin_l"
                    android_layout_marginRight="@dimen/global_book_reader_menus_margin_l"
                    android_backgroundTint="@color/application_gray"
                    android_maxHeight="1dp"
                    android_progressDrawable="@drawable/seek_bar"
                    android_thumb="@drawable/sliderknob_23" />
            </FrameLayout>

            <View
                android_layout_width="@dimen/settings_screen_popover_width"
                android_layout_height="1dp"
                android_layout_below="@+id/brightness_settings_seek"
                android_background="#CECECE"
                android_drawablePadding="@dimen/global_margin_s"
                android_gravity="center" />


            <FrameLayout
                android_layout_width="match_parent"
                android_layout_height="@dimen/settings_screen_sub_layout_height">

                <Switch
                    android_id="@+id/switchHighlights"
                    android_layout_width="wrap_content"
                    android_layout_height="wrap_content"
                    android_layout_gravity="right|center_vertical" />

                <TextView
                    android_layout_width="wrap_content"
                    android_layout_height="wrap_content"
                    android_layout_gravity="left|center_vertical"
                    android_text="@string/show_highlights_info"
                    android_textAppearance="?android:attr/textAppearanceMedium"
                    android_textColor="@color/settings_text_color"
                    android_id="@+id/txvShowHighligtsInfo" />
            </FrameLayout>

            <View
                android_layout_width="@dimen/settings_screen_popover_width"
                android_layout_height="1dp"
                android_layout_below="@+id/brightness_settings_seek"
                android_background="#CECECE"
                android_drawablePadding="@dimen/global_margin_s"
                android_gravity="center" />


            <FrameLayout
                android_layout_width="match_parent"
                android_layout_height="@dimen/settings_screen_sub_layout_height">

                <Switch
                    android_id="@+id/switchTheme"
                    android_layout_width="wrap_content"
                    android_layout_height="wrap_content"
                    android_layout_gravity="right|center_vertical" />

                <TextView
                    android_id="@+id/txvNightTheme"
                    android_layout_width="wrap_content"
                    android_layout_height="wrap_content"
                    android_layout_gravity="left|center_vertical"
                    android_text="@string/search_popup_night_theme_txt"
                    android_textAppearance="?android:attr/textAppearanceMedium"
                    android_textColor="@color/settings_text_color" />
            </FrameLayout>

            <View
                android_layout_width="@dimen/settings_screen_popover_width"
                android_layout_height="1dp"
                android_layout_below="@+id/brightness_settings_seek"
                android_background="#CECECE"
                android_drawablePadding="@dimen/global_margin_s"
                android_gravity="center" />

            <FrameLayout
                android_layout_width="match_parent"
                android_layout_height="@dimen/settings_screen_sub_layout_height">

                <Switch
                    android_id="@+id/switchLockScreen"
                    android_layout_width="wrap_content"
                    android_layout_height="wrap_content"
                    android_layout_gravity="right|center_vertical" />

                <!--       <android.support.v7.widget.SwitchCompat
                           android_id="@+id/switchLockScreen"
                           android_layout_width="153dp"
                           android_layout_height="wrap_content"
                           android_layout_gravity="center_vertical|left"
                           android_theme="@style/MySwitch" />   -->

                <TextView
                    android_id="@+id/txvLockScreen"
                    android_layout_width="wrap_content"
                    android_layout_height="wrap_content"
                    android_layout_gravity="left|center_vertical"
                    android_text="@string/search_popup_lock_screen_txt"
                    android_textAppearance="?android:attr/textAppearanceMedium"
                    android_textColor="@color/settings_text_color" />
            </FrameLayout>


        </LinearLayout>


    </LinearLayout>

    <!-- Font seek bar  -->

    <!-- Brighness -->

    <!--Night mode-->


</LinearLayout>`

это мой стиль:

<style name="MyDialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
<item name="android:windowBackground">@color/trans_black_second</item>
</style>

вот как я установил его в DialogFragment:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.i(TAG,"BookDialog onCreate");
    setCancelable(true);
    if ( mBookReader != null && inflater == null) {
        inflater = (LayoutInflater) mBookReader.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mWindowManager = (WindowManager)mBookReader.getSystemService(Context.WINDOW_SERVICE);
    }
    tfOpenSansHebrew =  FontUtils.getFont(getActivity(), FontUtils.FONT_OPEN_SANS);

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

}

1 ответ

  1. В диалоговом окне уже есть фон, на который ссылается строка android:background="@drawable/clean_backgroung_pop_up_ltr. Если вы хотите изменить его на темный, вам придется изменить drawable. Вы можете применить преобразования программно или просто создать другую возможность рисования, используя первую в качестве базы.

    Также не забудьте сменить тему диалога наTheme.DeviceDefault.Dialog, иначе элементы в диалоге будут плохо смотреться на темном фоне.

    То, что происходит прямо сейчас, заключается в том, что фон окна рисуется как черный прямоугольник, а затем фон макета рисуется поверх него. Конечно, вы можете убедиться, что фон окна имеет ту же форму, что и фон макета, но в этом случае он будет полностью скрыт под последним и, таким образом, будет абсолютно бесполезным.