Как заставить кнопку открыть другой фрагмент из другого фрагмента в котлине - PullRequest
0 голосов
/ 29 мая 2019

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

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

1 Ответ

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

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

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

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

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