Отключение диалогового окна и отображение нового кратко показывает основной фрагмент перед открытием нового диалога. - PullRequest
0 голосов
/ 30 мая 2019

В настоящее время у меня есть один фрагмент, который показывает фрагмент диалога, и когда я нажимаю кнопку на фрагменте диалога, я хочу показать другой фрагмент диалога.В моем первом фрагменте диалога у меня есть следующий метод:

 fun showSecondDialog() {
    dismiss()
    SecondDialog().showDialog(targetFragment!!)
}

showDialog () выглядит так:

    fun showDialog(fragment: Fragment) {
    val fragmentManager = fragment.fragmentManager
    val ft = fragmentManager!!.beginTransaction()
    val prev = fragmentManager.findFragmentByTag(getName())
    if (prev != null) {
        ft.remove(prev)
    }
    ft.addToBackStack(null)

    setTargetFragment(fragment, 0)
    show(ft, getName())
}

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

Как немедленно показать второе диалоговое окно или как узнать, когда оно открывается, поэтому ямог закрыть первый?

Ответы [ 2 ]

1 голос
/ 30 мая 2019

У меня тоже есть такая же проблема, но вы можете попробовать обходной путь, подобный этому, если он работает в соответствии с вашими требованиями:

fun showSecondDialog() {

    SecondDialog().showDialog(targetFragment!!)

    Handler().postDelayed({ dismiss() }, 1000)

}
0 голосов
/ 30 мая 2019

Google рекомендует, чтобы все фрагменты надували, заменяли, увольняли ... должны быть выполнены в родительской активности, и ни один фрагмент не должен знать ничего о любом другом фрагменте. Таким образом, фрагменты могут быть повторно использованы, как они были изначально предназначены.

...