是否有任何可能的方法将 fragment 放入 fragment 中?
我试图将 viewPager 放在 fragment 中并在 OnCreatedView 上编写代码,但它给我错误!!!
我尝试了这个,但 fragment 适用于 Activity 中的每个 fragment !
pageradapter.kt
class pagerAdapter(fm:FragmentManager):FragmentStatePagerAdapter(fm){
override fun getItem(position: Int): Fragment? {
return when(position){
0-> Fragment1()
1-> Fragment2()
else -> null
}
}
override fun getCount(): Int {
return 2
}
fun rotatePosition(position: Int):Int{
return (count -1)-position
}
class pagerAdapter(fm:FragmentManager):FragmentStatePagerAdapter(fm){
override fun getItem(position: Int): Fragment? {
return when(position){
0-> Fragment1()
1-> Fragment2()
else -> null
}
}
override fun getCount(): Int {
return 2
}
fun rotatePosition(position: Int):Int{
return (count -1)-position
}
pageradapter2.kt
class pagerAdapter2(fm: FragmentManager):FragmentStatePagerAdapter(fm){
override fun getItem(position: Int): Fragment? {
return when(position){
0-> BlankFragment()
else->null
}
}
/**
* Return the number of views available.
*/
override fun getCount(): Int {
return 1
}
主要 Activity .kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val pagerAdapter2 = pagerAdapter2(supportFragmentManager)
val pager1= findViewById<View>(R.id.pager2) as ViewPager
pager1.adapter = pagerAdapter2
val adapter = pagerAdapter(supportFragmentManager)
val pager = findViewById<View>(R.id.pager) as ViewPager
pager.adapter = adapter
pager.setCurrentItem(adapter.rotatePosition(0), false)
}
附言第一个答案解决了我的问题。
最佳答案
如果您要为 Activity 添加 fragment ,您可以使用 fragmentManager
或 supportFragmentManager
。
如果您要为 fragment 添加 fragment - 您应该使用 childFragmentManager
,从 fragment 访问 fragmentManager
将导致使用与 Activity 相同的 fragment 。
关于android - fragment 内 fragment {Kotlin},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52599506/