Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用setupWithViewPager时,XML选项卡项消失_Android_Android Viewpager_Android Tablayout - Fatal编程技术网

Android 使用setupWithViewPager时,XML选项卡项消失

Android 使用setupWithViewPager时,XML选项卡项消失,android,android-viewpager,android-tablayout,Android,Android Viewpager,Android Tablayout,我正在尝试添加TabItem的表单XML,稍后希望在java代码中将它们与ViewPager连接起来。但只要我调用tab\u layout.setupWithViewPager(寻呼机)选项卡项就会变为空白 片段代码: override fun onViewCreated(view: View, savedInstanceState: Bundle?) { val listOfFragment = listOf(Fragment1.newInstance(),Fragment2.newI

我正在尝试添加TabItem的表单XML,稍后希望在java代码中将它们与ViewPager连接起来。但只要我调用
tab\u layout.setupWithViewPager(寻呼机)
选项卡项就会变为空白

片段代码:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    val listOfFragment = listOf(Fragment1.newInstance(),Fragment2.newInstance(),Fragment3.newInstance())
    homePagerAdapter = HomePagerAdapter(childFragmentManager, listOfFragment)
    view_pager.adapter = homePagerAdapter
    tab_layout.setupWithViewPager(view_pager)
}
碎片页雷达:

class HomePagerAdapter(fm: FragmentManager, private val listOfFragment: List<FragmentData>) :
    FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {

    override fun getItem(position: Int): Fragment {
        return listOfFragment[position].fragment
    }

    override fun getCount(): Int {
        return listOfFragment.size
    }
}
class HomePagerAdapter(fm:FragmentManager,private val listOfFragment:List):
FragmentPagerAdapter(fm、行为\仅恢复\当前\片段){
覆盖趣味getItem(位置:Int):片段{
返回listOfFragment[position]。fragment
}
重写fun getCount():Int{
返回listOfFragment.size
}
}
XML:


预期:

请注意:我很清楚实现这一点的其他几种方法,比如动态添加TabItem,然后连接ViewPager,并添加
tab\u布局。选择tab(tab\u布局。getTabAt(位置))
ViewPager的onPageSelected回调。
但我希望在不修改java代码的情况下,将XML选项卡项与ViewPager连接起来。提前感谢。

方法
tabLayout.setupWithViewPager()
,然后从适配器添加选项卡。
使用适配器填充
表格布局

<...>
    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/title_appbar">

        <com.google.android.material.tabs.TabItem
            android:id="@+id/profile_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/ic_profile"
            android:text="@string/profile" />

        <com.google.android.material.tabs.TabItem
            android:id="@+id/photos_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/ic_photos"
            android:text="@string/photos" />

        <com.google.android.material.tabs.TabItem
            android:id="@+id/live_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:icon="@drawable/ic_live"
            android:text="@string/live" />
    </com.google.android.material.tabs.TabLayout>

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tab_layout">
    </androidx.viewpager.widget.ViewPager>    
</...>