如何创建模式BottomSheetDialog(Fragment)
并使用Material Design Spec中所示的工具栏切换到全屏模式?
我可以通过添加BottomSheetBehavior.BottomSheetCallback
并根据slideOffset设置工具栏的Alpha来手动添加工具栏。当移动底表时,这有点棘手,但似乎可以解决。但是,当我的底部工作表包含EditText
并显示键盘时,此操作将无效。我尝试了两个版本:BottomSheetDialogFragment
,然后将“行为”手动添加到新的片段中。
答案 0 :(得分:0)
我面临同样的问题。 这就是我解决的问题。 行为隐藏在BottomSheetDialog中,可用于获取行为 如果您不想将父布局更改为CooridateLayout, 你可以试试看。
步骤1:自定义BottomSheetDialogFragment
open class CBottomSheetDialogFragment : BottomSheetDialogFragment() {
//wanna get the bottomSheetDialog
protected lateinit var dialog : BottomSheetDialog
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
dialog = super.onCreateDialog(savedInstanceState) as BottomSheetDialog
return dialog
}
//set the behavior here
fun setFullScreen(){
dialog.behavior.state = STATE_EXPANDED
}
}
步骤2:让您的片段扩展此自定义片段
class YourBottomSheetFragment : CBottomSheetDialogFragment(){
//make sure invoke this method after view is built
//such as after OnActivityCreated(savedInstanceState: Bundle?)
override fun onStart() {
super.onStart()
setFullScreen()//initiated at onActivityCreated(), onStart()
}
}