jetpack构成EdgetoEdge问题

问题描述 投票:0回答:1

I在API 35上创建一个JetPack组成的应用程序目标,该应用程序具有底部导航。在MainActivity.kt中

enableEdgeToEdge( statusBarStyle = SystemBarStyle.light(Color.TRANSPARENT, Color.TRANSPARENT) )
所有在每个屏幕中都可以组合的根,我有:

Column( modifier = Modifier .fillMaxSize() .windowInsetsPadding(WindowInsets.statusBars) ) { val tabIndex = aboutUsViewModel.tabIndex.observeAsState() TabRow(selectedTabIndex = tabIndex.value!!) { .... } }
nove,状态栏是白色的,如下所示:
statusbar是白色的颜色

因此如何使其透明?对此表示赞赏。

我不知道你想要什么,但我正在使用
android-jetpack-compose statusbar edge-to-edge
1个回答
0
投票

查看代码: -

 Scaffold(
        topBar = {
            // Use Tab Row Here Like This
            TabRow(
                selectedTabIndex = tabIndex.value!!,
                modifier = modifier
                    .fillMaxWidth()
                    .background(color = Your_bg_Color_of_TabRow)
                    .statusBarsPadding()
            ) {
                 ....
            }
        },
        modifier = modifier
            .fillMaxSize()
    ) { innerPadding -> 

       /*  Your Content in the Scaffold  */

       Column(
          modifier = Modifier
           .fillMaxSize()
           .padding(paddingValues = innerPadding)
      ) {
           /*   Your Content Below the TopBar (Tab Row)    */
      }         

}

我们使用

statusBarsPadding()
修饰符在我们的标签行中添加填充物,否则您的标签行将与状态栏崩溃。我们还拥有
navigationBarsPadding()

修饰符,用于在Bottombar内容中添加填充物,以避免使用底部导航杆倒塌。内置的

TopAppBar
BottomAppBar
具有带有应用程序棒的内置填充物。如果我们要制作自定义栏内容,因此我们必须为特定的应用程序栏添加这些修饰符。
确保您在statusbarspadding()修饰符之前添加背景修饰符,因为修饰符首先添加了我们首先提供的修饰符,然后添加另一个修饰符。
我们提供的

background color
也将为状态栏提供该颜色。

innerPadding
也是脚手架提供的应用程序条之间的填充。如果我们不以脚手架的内容提供它,那么我们的内容将与应用程序栏内容崩溃。如果您只想提供tosing

innerPadding

之类的区域。然后我们可以这样做: - 

top

提供特定区域不会将您的内容与该应用程序栏这样的内容崩溃,例如提供InnerPadding不会使您满足于您的顶级栏内容。
我希望您能通过这种方法实现自己想要的东西。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.