Как добавить фрагмент поверх другого фрагмента с помощью навигационного ранца? - PullRequest
0 голосов
/ 20 июня 2020

Я хочу добавить фрагмент поверх другого фрагмента. Но при использовании навигационного реактивного ранца кажется, что замена фрагмента не добавляется.

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

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Это сработало для меня ->

    fun ShowDialog()
    {
        //Inflate the dialog with custom view
        val mDialogView = 
        LayoutInflater.from(context).inflate(R.layout.layout_popup, null)
    
        //AlertDialogBuilder
        val mBuilder = AlertDialog.Builder(context)
        .setView(mDialogView)

        //show dialog
        val alertDialog=mBuilder.show()

        mDialogView.button_close.setOnClickListener {
           alertDialog.dismiss()
        }

        mDialogView.button_submit.setOnClickListener {
           viewModel.data.value="Data"
           alertDialog.dismiss()
       }
   }

Итак, вместо добавления фрагмента и взаимодействия с ним, мы можем вместо этого добавить диалог и добавить слушателя к представлениям.

0 голосов
/ 20 июня 2020

Одним из вариантов может быть расширение вашего второго фрагмента DialogFragment и добавление его к графу навигации как <dialog>, а не <fragment>. Он будет автоматически отображаться как диалог компонентом навигации.

Вот пример:

    <dialog
        android:id="@+id/myPopupDialogFragment"
        android:name="project.package.name.MyDialogFragment"
        android:label="MyDialogFragment">
        <!-- add arguments if you wish -->
    </dialog>

Вы можете сделать этот диалог полноэкранным, используя полноэкранную тему или как нижний лист, используя :

Theme.MaterialComponents.Light.BottomSheetDialog
...