如何使用 Android 支持设计库 (v23.2.1) 设置扩展 BottomSheetDialogFragment
以使用 BottomSheetBehavior#setState(STATE_EXPANDED)
扩展的片段的状态?
https://code.google.com/p/android/issues/detail?id=202396 说:
底部工作表首先设置为 STATE_COLLAPSED。如果要扩展它,请调用 BottomSheetBehavior#setState(STATE_EXPANDED)。请注意,您不能在视图布局之前调用该方法。
建议的做法 需要先膨胀视图,但我不确定如何将 BottomSheetBehaviour 设置到片段上( BottomSheetDialogFragment
)。
View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet);
BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);
原文由 user2560886 发布,翻译遵循 CC BY-SA 4.0 许可协议
上面的文字是线索。
对话框有一个监听器,一旦 显示 对话框就会触发。如果未布局,则无法显示对话框。
因此,在模态底页(
onCreateDialog()
BottomSheetFragment
)的 --- 中,就在返回对话框之前(或任何地方,一旦你有对对话框的引用),调用:就我而言,我的自定义
BottomSheet
结果是:让我知道这是否有帮助。
更新
请注意,您还可以覆盖
BottomSheetDialogFragment
为:但我真的不明白为什么有人会这样做,因为基础
BottomSheetFragment
除了返回BottomSheetDialog
之外什么都不做。ANDROIDX 更新
使用 AndroidX 时,之前在
android.support.design.R.id.design_bottom_sheet
找到的资源现在可以在com.google.android.material.R.id.design_bottom_sheet
找到。