当前位置: 首页 > 知识库问答 >
问题:

在喷气背包组合中使用底部栏创建全屏底页

茹照
2023-03-14

我在jetpack compose中确实有一个要求,即我的脚手架中需要一个底部杆,也需要一个高度可调的底部板。我只能实现其中的任何一个。我不得不用下面的代码牺牲底部的条:

BottomSheetScaffold(sheetContent = {//anything here})
   { innerPadding -> Box(){}
   }

我没有选择在这里使用底部栏,而我可以自由调整纸张的高度。第二种解决方案是使用ModalBottomSheetLayout,我可以在其中添加脚手架并添加底部栏,但无法调整板材的高度。

ModalBottomSheetLayout(
   sheetState = modalBottomSheetState,
   sheetContent = {//anything here}
){
     Scaffold(
        topBar = {
                //
        },
        bottomBar = {
                //
        },
     ){
         innerPadding -> Box(){}
      }
 }

共有1个答案

伍捷
2023-03-14

你的问题可以用BottomSheetScaffold解决。您可以通过<code>SheetPeek height</code>在关闭位置调整其高度。要在底部工作表折叠时拥有bottombar元素,您应该阅读本文并查看相关示例。此解决方案的原理是,在底部工作表折叠时,将其内容设置为底部栏的动画,并在打开时将其设置为底部工作表中所需的内容的动画。

解释解决方案的文章和示例。

如果这对你不起作用,那么你应该看看你自己的可组合实现。实现底部工作表状功能的要求是:嵌套滚动可滑动偏移修饰符扩展。如何处理它们,您可以在这里找到:关于嵌套滚动和底页的文章。

 类似资料:
  • 我在jetpack撰写中使用了BottomSheet视图,但我想使用BotomSheet锁定屏幕,直到我们单击BotomShets的按钮并在BotomSheet中禁用外部触摸。我怎么做? 我的底单: 可组合函数是一个谷歌地图屏幕

  • 以下是 BottomNav 实现的概述。该应用程序正确显示底部导航栏,但当选择某个项目时,它会多次调用NavHost。我看到Jetpack撰写样本 https://github.com/android/compose-samples/tree/main/Jetsnack 一个类似的问题。是否有任何解决方法可以避免多次Navhost调用?

  • 几天来,我一直试图成功地构建我正在进行的项目(使用Jetpack Compose),但当我更新gradle构建插件和其他一些依赖项时,我无法正确运行该项目。有一些gradle版本与dagger-hilt依赖项冲突,我不知道如何修复它。我正在使用Android Studio的金丝雀测试版。 这里还有我所有的gradle构建文件: Gradle构建模块应用程序: Gradle构建(项目层级): 错误:

  • BottomBar有4个目的地:ScreenA,ScreenB,ScreenC和ScreenD。 在ScreenA上按下按钮(不是底部栏项)时,我想使用参数转到ScreenB。 导航图 底部栏 到目前为止,单击ScreenA上的按钮会将我导航到ScreenB,但参数值始终为0,因为我永远不会传递在lambda中传递的参数。我使用的是compose_version='1.2.0-alpha04'和"

  • 可以在Jetpack Compose中进行权重吗?例如,我想以这样一种方式设置它,即一个项目被加权为布局的1/3,而另一个占剩余的2/3。 在XML/ViewGroup样式中,可以使用LinearLayouts和ConstraintLayouts来实现这一点。然而,令我沮丧的是,使用Jetpack Compose似乎是不可能的。 示例: 在ConstraintLayout中,这是按如下方式完成的:

  • 我想知道什么是喷气背包中的脚手架组成一个BottomAppBar示例任何人都可以帮我