android - Скрыть или закрыть BottomSheetDialog при нажатии на пункт меню (Kotlin) - PullRequest
0 голосов
/ 12 июля 2020

В настоящее время я работаю над приложением, в котором есть BottomSheetDialog в качестве меню навигации. Это меню вызывается элементом навигации панели инструментов.

При вызове BottomSheetDialog он отображается, и щелчок по элементу списка создает соответствующее действие, которое ожидается. Однако, когда я закрываю недавно открытое действие, BottomSheetDialog снова появляется, что не является предполагаемым поведением.

Что оно делает

Есть ли способы предотвратить отображение BottomSheetFragment?

Я пробовал использовать .also после создания Intent, но нет функция, предназначенная для скрытия или закрытия диалогового окна

Вот код 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
        }
    }
}

1 Ответ

1 голос
/ 12 июля 2020

Чтобы закрыть диалоговое окно 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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...