TabLayout的基本使用
可以在xml中添加TabLayout以及子选项
<com.google.android.material.tabs.TabLayout
android:layout_height="wrap_content"
android:layout_width="match_parent">
<com.google.android.material.tabs.TabItem
android:text="@string/tab_text"/>
<com.google.android.material.tabs.TabItem
android:icon="@drawable/ic_android"/>
</com.google.android.material.tabs.TabLayout>
也可以选择在代码中添加
binding.tablayout.addTab(binding.almTableTl.newTab().apply {
text = "选项一"
})
binding.tablayout.addTab(binding.almTableTl.newTab().apply {
text = "选项二"
})
这是单独使用TabLayout的情况,如果需要和ViewPager或者ViewPager2配合使用的话,并不需要去添加这些 tab 选项
结合ViewPager/ViewPager2
结合ViewPager可以直接调用 setupWithViewPager方法,即
binding.tablayout.setupWithViewPager(viewpager)
如果需要和 ViewPager2 结合使用的话,需要用到 TabLayoutMediator 这个类,如下
TabLayoutMediator(binding.tablayout, binding.viewpager2, object: TabLayoutMediator.TabConfigurationStrategy{
override fun onConfigureTab(tab: TabLayout.Tab, position: Int) {
when(position){
0 -> tab.text = "选项一"
1 -> tab.text = "选项二"
}
}
}).attach()