首页 > 解决方案 > 如何在 ViewPager 中更新 TextView

问题描述

如何更新ViewPager2kotlin 中的 TextView?

我试图在 ViewPager 中创建对我的 Fragment 的引用并以这种方式进行更改,但是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!!
    }
}

标签: javaandroidandroid-fragmentskotlin

解决方案


推荐阅读