Как я могу использовать FragmentFactory с FragmentStatePagerAdapter - PullRequest
0 голосов
/ 28 мая 2020

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

Я бы хотел использовать пользовательский FragmentFactory вместе с FragmentStatePagerAdapter.

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

supportFragmentManager.fragmentFactory = CustomFragmentFactory()

. Затем я могу использовать supportFragmentManager для инициализации моего FragmentStatePagerAdapter. Пока все в порядке.

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

Допустим, у меня есть список items и ItemFragment, который показано на пейджере вида, показывающем items[position], следовательно, у него есть такой конструктор:

class ItemFragment(val item: Item) : Fragment()

Как мне реализовать функцию CustomeFragmentFactory и FragmentStatePagerAdapter s getItem(position: Int), чтобы получить безопасный эквивалент это:

override fun getItem(position: Int) = ItemFragment(items[position])
...