我在Android中使用TabLayout
ViewPager
。每当我运行代码时,TabLayout指标表现得很奇怪。它不是自动捕捉到下一个标签,而是像水平滚动条一样。所以我有一个TabLayout指标,它实际上悬挂在两个标签之间。而且没有错误。这是我的代码:
我的onCreate()
方法:
val tabLayout = findViewById<TabLayout>(R.id.tl)
val viewPager = findViewById<ViewPager>(R.id.vp)
viewPager.adapter = AmpPagerAdapter(supportFragmentManager)
tabLayout.setupWithViewPager(viewPager)
val icons = arrayOf(R.drawable.ic_hot_24dp, R.drawable.ic_person_24dp)
icons.forEachIndexed { index, i -> tabLayout.getTabAt(index)?.setIcon(i) }
My FragmentPagerAdapter:
class AmpPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
private val pages = arrayListOf(Fragment(), Fragment())
override fun getItem(position: Int): Fragment = pages[position]
override fun getCount(): Int = pages.size
}
首先我认为我添加了太多选项卡,但事实并非如此,因为我的页面数组列表长度为2. 当我点击选项卡时,指标工作正常。
问题是什么?
答案 0 :(得分:0)
好吧,问题是,我正在使用Android的默认Fragment类填充FragmentPagerAdapter
,没有附加布局。当我创建自己的片段并充气时布局,TabLayout指标开始正常工作。
请注意,实际问题是没有布局膨胀。这就是为什么填写默认的Fragment类是个问题。
答案 1 :(得分:0)
AmpPagerAdapter(childFragmentManager)
我使用getSupportFragmentManager()
遇到同样的问题
正如@SynerFlow自己发布的回答,这就是原因。
我的解决方案是使用getChildFragmentManager()
代替。
谢谢