常规的tab分页是通过Tablayout + ViewPager2实现
但是Tablayout 继承 HorizontalScrollView 只能实现横向布局
在垂直tab 并且需求简单的场景下 就可以使用FragmentTransaction
左侧tab采用两个linearLayout实现 点击则可进行fragment切换
FragmentTransaction使用注意
每次在使用FragmentTransaction的时候都需要重新获取,每一个FragmentTransaction只能够commit()一次。
如果需要通过返回键让fragment回复到之前的一个状态 则使用 fransaction.addToBackStack(null)
这个方法,在commit()之前使用,能够保留commit之前的状态,在使用返回键时,能够回到之前的状态。
replace实现
极端情况会出现fragment复用的情况
每次切换都是一个新的fragment
class MainActivity : AppCompatActivity() {
private lateinit var feedBackView: LinearLayout
private lateinit var feedBackListView: LinearLayout
private var fragmentManager: FragmentManager = supportFragmentManager
private lateinit var textView: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val tabTitle = arrayListOf<String>("反馈记录", "我要反馈")
val fragments = arrayOfNulls<Fragment>(tabTitle.size)
fragments[0] = C()
fragments[1] = D()
feedBackView = findViewById(R.id.feedback)
feedBackListView = fin