首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将BottomSheetDialogFragment设置为与安卓系统导航栏相同的颜色?

如何将BottomSheetDialogFragment设置为与安卓系统导航栏相同的颜色?
EN

Stack Overflow用户
提问于 2022-08-23 06:21:26
回答 1查看 45关注 0票数 0

我试图使我的BottomSheetDialogFragment和底部导航颜色是相同的颜色。设置导航栏的颜色很好,因为我把它设置为白色,但是按钮的颜色仍然是白色的,就像你在图片中看到的那样。这就是我的风格:

代码语言:javascript
运行
复制
<style name="AppBottomSheetDialogTheme" parent="Theme.Design.BottomSheetDialog">
        <item name="bottomSheetStyle">@style/AppModalStyle</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowTranslucentStatus">false</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:navigationBarColor">@color/white</item>

        <item name="android:windowLightStatusBar">true</item>
    </style>

    <style name="AppModalStyle" parent="Widget.Design.BottomSheet.Modal">
        <item name="android:background">@drawable/ic_dialog_background</item>
        <item name="behavior_peekHeight">300dp</item>
    </style>

theme.xml
    <style name="Theme.MyApp" parent="Theme.AppCompat.DayNight.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="android:colorPrimary">#ffffff</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:actionBarSize">0dp</item>
        <item name="bottomSheetDialogTheme">@style/AppBottomSheetDialogTheme</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:navigationBarColor">@color/screen_background_color</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
    </style>

ActivityMain:

代码语言:javascript
运行
复制
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            val nightModeFlags: Int = resources.configuration.uiMode and
                    Configuration.UI_MODE_NIGHT_MASK
            when (nightModeFlags) {
                Configuration.UI_MODE_NIGHT_YES -> {
                }
                Configuration.UI_MODE_NIGHT_NO -> {
                    val decorView = window.decorView
                    decorView.systemUiVisibility = FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS or
                            SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                }
                Configuration.UI_MODE_NIGHT_UNDEFINED -> {
                }
            }
        }

        window?.navigationBarColor = resources.getColor(com.imediavan.common.R.color.screen_background_color)
        window?.statusBarColor = resources.getColor(com.imediavan.common.R.color.screen_background_color)

属性android:windowLightStatusBar在该活动上运行良好,但对于对话框则不是。

EN

回答 1

Stack Overflow用户

发布于 2022-08-23 07:31:19

我认为你想要建立底部的对话框与圆角,并在显示底部工作表后,这个问题发生在你的底片像这样。

1-像这样在theme.xml中构建样式

代码语言:javascript
运行
复制
<style name="CustomShapeAppearanceBottomSheetDialog" parent="">
        <item name="cornerFamily">rounded</item>
        <item name="cornerSizeTopRight">16dp</item>
        <item name="cornerSizeTopLeft">16dp</item>
        <item name="cornerSizeBottomRight">0dp</item>
        <item name="cornerSizeBottomLeft">0dp</item>
    </style>

2-在theme.xml中构建另一种样式,如下所示

代码语言:javascript
运行
复制
<style name="CustomBottomSheet" parent="Widget.MaterialComponents.BottomSheet">
        <item name="shapeAppearanceOverlay">@style/CustomShapeAppearanceBottomSheetDialog</item>
    </style>

3.建立另一种风格,就像这一种

代码语言:javascript
运行
复制
  <style name="CustomBottomSheetDialog" parent="@style/ThemeOverlay.MaterialComponents.BottomSheetDialog">
        <item name="bottomSheetStyle">@style/CustomBottomSheet</item>
    </style>

4-作为最后一步,将这一行添加到theme.xml中的基本应用程序主题

代码语言:javascript
运行
复制
 <item name="bottomSheetDialogTheme">@style/CustomBottomSheetDialog</item>

( 100%为我工作:()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73453990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档