android - 在选项卡布局片段中未在 androidX 中显示其布局
问题描述
我有一个选项卡布局,其中包含五个片段,但是当我单击选项卡时,不显示片段布局。在我的适配器中,我扩展了具有 FragmentManager 和可变行为的 FragmentPagerAdapter。
class ViewPagerAdapter(@NonNull fm:FragmentManager, behaviour:Int):
FragmentPagerAdapter(fm, behaviour) {
private val tabs:Array<Fragment> = arrayOf(
Category1Fragment(),
Category2Fragment(),
Category3Fragment(),
Category4Fragment(),
Category5Fragment()
)
@NonNull
override fun getItem(position: Int): Fragment {
return tabs[position]
}
override fun getCount(): Int {
return tabs.size
}
@Nullable
override fun getPageTitle(position: Int): CharSequence? {
return when (position) {
0 -> "Bags"
1 -> "Watches"
2 -> "Shoes"
3 -> "Glasses"
4 -> "Audio"
else -> null
}
}
}
在我的活动中,我通过 viewpager 调用了适配器,但是当我调试时告诉我适配器为空,这是我的活动代码:
val adapter = ViewPagerAdapter(supportFragmentManager, tab_layout.selectedTabPosition)
val viewPager = findViewById<ViewPager>(R.id.view_pager)
viewPager.adapter = adapter
val tab = findViewById<TabLayout>(R.id.tab_layout)
tab.setupWithViewPager(view_pager)
// -------------------------------------------------------------------------------- //
tab.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabReselected(p0: TabLayout.Tab?) {
}
override fun onTabUnselected(p0: TabLayout.Tab?) {
}
override fun onTabSelected(p0: TabLayout.Tab?) {
viewPager.currentItem = tab.selectedTabPosition
}
})
在以前的 android 版本中,我做了同样的事情,但在 androidX 中,情况有所不同。我也尝试使用 ViewPager2,但它令人困惑。任何帮助表示赞赏!
解决方案
推荐阅读
- macos - AppleScript 的 tell 语句无条件打开 firefox,忽略封闭 if 块
- python - FastAPI - 支持多种认证依赖
- android - ViewPager2 重新创建片段
- php - 拉拉维尔 7/8。自定义哈希驱动程序
- python - 如何在数据库中获取用户名 ID?
- javascript - str.replace 在 2 个特殊字符之间保留特殊字符
- javascript - 递归函数返回输入中的每个字符
- javascript - 如果文本字段值设置为某个值,则显示隐藏的 div
- android - 有没有一种优雅的方式在 kotlin 中使用类的私有变量的方法?
- sql - SQL 查询中的“ALL”概念