Как обновить TextView внутри ViewPager - PullRequest
0 голосов
/ 26 мая 2020

Как я могу обновить TextView, который находится внутри ViewPager2 в kotlin?

Я попытался создать ссылку на мой фрагмент внутри ViewPager и изменить его таким образом, но свойство viewFragment равен нулю, когда я нажимаю кнопку "Назад", чтобы снова вернуться к этому фрагменту

viewPagerAdapter?.viewFragment?.dhikrLbl?.textSize = newSize

мой фрагмент, который ссылается на пейджер просмотра

class DhikrFragment(val previewDhikr: PreviewDhikr) : HandleFontSize(), FontSizeDataSource {

    private var defaultFontSize: FontSize = 24f

    private var fontSize: FontSize by Delegates.observable(defaultFontSize) { _, _, newSize ->
        viewPagerAdapter?.viewFragment?.dhikrLbl?.textSize = newSize
    }

    private var viewPagerAdapter: DhikrViewPagerAdapter? = null

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment_dhikr, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        loadViewPager()
    }

    private fun loadViewPager() {
        viewPagerAdapter = DhikrViewPagerAdapter(this, previewDhikr, showingDhikrType, fontSize)
        view_pager.adapter = viewPagerAdapter
    }
}
class DhikrViewPagerAdapter(val fragment: Fragment,
                           private val previewDhikr: PreviewDhikr,
                           private val showingType: ShowingType,
                           private val fontSize: FontSize) : FragmentStateAdapter(fragment) {

    var viewFragment: DhikrViewPagerFragment? = null

    override fun getItemCount(): Int {
        return previewDhikr.dhikrs.size
    }

    override fun createFragment(position: Int): Fragment {
        viewFragment = DhikrViewPagerFragment(previewDhikr, showingType, fontSize, position)
        return viewFragment!!
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...