代码说明
1、MagicIndicator+ViewPager2
layout
<net.lucode.hackware.magicindicator.MagicIndicator
android:id="@+id/tab_page"
android:layout_width="match_parent"
android:layout_height="48dp"
android:paddingBottom="5dp"
app:tabGravity="fill"
app:tabIndicatorColor="@color/white"
app:tabIndicatorHeight="1dp"
app:tabMode="scrollable"
app:tabTextColor="@color/white" />
</RelativeLayout>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/vp_page"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white" />
Activity
private fun initViewPager() {
binding.vp.isUserInputEnabled = false //禁止滑动
fragmentList.clear()
for (index in tabList.indices) {
fragmentList.add(Fragment().apply {
//页面传值
arguments = Bundle().apply {
putString("key", value)
putSerializable("bean", list)
}
})
}
//设置适配器(vp通过适配器管理fragment)
binding.vp.initFragment(this, fragmentList)
//fragment注册页面监听事件
binding.vp.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
}
})
//将MagicIndicator和vp2绑定
initNavigtor(tabList, binding.vpInfo, binding.tabInfo)
}
2、Activity向Fragment传值
Activity传值
Fragment().apply {
//页面传值
arguments = Bundle().apply {
putString("content", value)
}
}
fra接收
@Param
var content = ""