我正在寻找一种通过使用ClickListener
将片段移动到片段的方法;但我不知道如何将片段移动到片段。
我想这样移动:
一个片段有4张Cardview
点击1张卡片视图:移至片段B点击2卡视图:移至片段C点击3张卡片:移至片段D点击4张卡片:移至片段F
我已经使用下面的代码将片段移动到活动中
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
power655Card.setOnClickListener {
val intent = Intent (getActivity(), Power655Activity::class.java)
getActivity()?.startActivity(intent)
}
您可以更改片段,将其放入侦听器:
val fragmentB = FragmentB()
activity.getSupportFragmentManager().beginTransaction()
.replace(R.id.layout_container, fragmentB, "fragmnetId")
.commit();
[R.id.layout_container
是您的活动xml中的片段容器
fragmentId
是该片段的ID,因此您以后可以参考它。
在Kotlin中,如果要在活动中加载各种片段,则可以创建一个函数,以在加载片段所需的任何地方调用。
private fun loadFragment(fragment: Fragment){
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.fl_main, fragment)
transaction.disallowAddToBackStack()
transaction.commit()
}
如果要从片段中加载片段,
val transaction = activity.supportFragmentManager.beginTransaction()
transaction.replace(R.id.fl_main, SecondFragment())
transaction.disallowAddToBackStack()
transaction.commit()
在上面的代码Spinnet中,SecondFragment()是要加载的片段的实例。因此我们也可以传递片段的实例,如上所示。