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

как сделать кнопку для открытия другого фрагмента. находясь внутри фрагмента. котлин

Я начинаю в kotlin, и мне трудно открыть фрагмент с помощью кнопки, как мне это сделать?

0
0
825
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно использовать FragmentManager и FragmentTransaction, чтобы добавить свой фрагмент на лету. вы можете вызвать функцию, подобную этой, в методе onClick вашей кнопки. Но рекомендуется, чтобы родительская активность обрабатывала жизненный цикл каждого фрагмента и фрагменты не должны взаимодействовать друг с другом. Следующее взято из документации разработчика, что можно найти здесь. «Часто вам нужно, чтобы один фрагмент взаимодействовал с другим, например, для изменения содержимого на основе пользовательского события. Вся связь между фрагментами осуществляется либо через общую модель представления, либо через связанную активность. Два фрагмента никогда не должны взаимодействовать напрямую. ."

fun createFragmentonTheFly(){
        var mFragmentTransaction: FragmentTransaction = getSupportFragmentManager().beginTransaction()
        mFragmentTransaction.add(R.id.fr_container,new ProductListFragment()) 
        mFragmentTransaction.commit()
    }

Лучший способ сделать это - добавить интерфейс, скажем, onFragmentDetachedLisetner и добавить один метод replaceFragment() или что-то еще, и заставить вашу активность реализовать этот интерфейс и заменить его, как только фрагмент будет отсоединен, и сделать ваш фрагмент, содержащий вашу кнопку завершиться, когда пользователь нажмет кнопку, тогда ваша активность заменит ее той, которую вы хотели запустить. А также подумайте о повторном использовании фрагментов, так как это в первую очередь основная цель фрагментов.

Другие вопросы по теме