android - 在项目菜单单击时隐藏或关闭 BottomSheetDialog (Kotlin)
android - Hide or close BottomSheetDialog on item menu click (Kotlin)
我目前正在开发一个应用程序,它有一个 BottomSheetDialog
作为导航菜单。此菜单由工具栏导航项调用。
当调用 BottomSheetDialog 时,它会出现,点击列表中的一个项目会创建相关的 activity,这是预期的。但是,当我关闭新打开的 activity 时,BottomSheetDialog 再次出现,这不是预期的行为。
有什么方法可以防止 BottomSheetFragment 出现吗?
创建 Intent 后我尝试使用 .also
,但是没有专门用于隐藏或关闭对话框的功能
这是 BottomSheetFragment 代码:
class frgBottomSheetDrawer : BottomSheetDialogFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)
return inflater.inflate(R.layout.fragment_bottomsheet, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
navDrawer.setNavigationItemSelectedListener { menuItem ->
when (menuItem!!.itemId) {
R.id.ndListFolder -> this.startActivity(Intent(activity, ndActFolder::class.java))
R.id.ndListSettings -> this.startActivity(Intent(activity, ndActSettings::class.java))
R.id.ndListAbout -> this.startActivity(Intent(activity, actAbout::class.java))
}
true
}
}
}
要在单击项目后关闭 bottomSheet 对话框,请尝试以下操作
navDrawer.setNavigationItemSelectedListener { menuItem ->
when (menuItem!!.itemId) {
R.id.ndListFolder -> this.startActivity(Intent(activity,
ndActFolder::class.java))
dismiss() // add this whenever you want to close the bottomSheet
}
true
}
所以你只需要添加这个方法dismiss()
我目前正在开发一个应用程序,它有一个 BottomSheetDialog
作为导航菜单。此菜单由工具栏导航项调用。
当调用 BottomSheetDialog 时,它会出现,点击列表中的一个项目会创建相关的 activity,这是预期的。但是,当我关闭新打开的 activity 时,BottomSheetDialog 再次出现,这不是预期的行为。
有什么方法可以防止 BottomSheetFragment 出现吗?
创建 Intent 后我尝试使用 .also
,但是没有专门用于隐藏或关闭对话框的功能
这是 BottomSheetFragment 代码:
class frgBottomSheetDrawer : BottomSheetDialogFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)
return inflater.inflate(R.layout.fragment_bottomsheet, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
navDrawer.setNavigationItemSelectedListener { menuItem ->
when (menuItem!!.itemId) {
R.id.ndListFolder -> this.startActivity(Intent(activity, ndActFolder::class.java))
R.id.ndListSettings -> this.startActivity(Intent(activity, ndActSettings::class.java))
R.id.ndListAbout -> this.startActivity(Intent(activity, actAbout::class.java))
}
true
}
}
}
要在单击项目后关闭 bottomSheet 对话框,请尝试以下操作
navDrawer.setNavigationItemSelectedListener { menuItem ->
when (menuItem!!.itemId) {
R.id.ndListFolder -> this.startActivity(Intent(activity,
ndActFolder::class.java))
dismiss() // add this whenever you want to close the bottomSheet
}
true
}
所以你只需要添加这个方法dismiss()