如何使Tablayout也可滚动

时间:2019-10-07 09:42:36

标签: android

我编写了这段代码,但是选项卡的布局不可滚动,而是所有选项卡都向左移动,但是视图分页器工作正常。

当我滚动viewpager时,选项卡项正在移动,我希望这些Tabitem应该可以使用TabLayout滚动。

<com.google.android.material.tabs.TabLayout
        android:id="@+id/tablayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorblue"
        app:tabGravity="center"
        android:layout_gravity="center_horizontal"
        app:tabMode="scrollable"
        app:tabIndicatorColor="@color/colorgeydark"
        app:tabSelectedTextColor="@color/colorwhite"
        app:tabTextColor="@color/colorgeydark"
        android:layout_marginTop="5.5dp"
        app:tabBackground="@android:color/transparent"
        app:tabContentStart="0dp"
        />


    <androidx.viewpager.widget.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/tablayout"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

2 个答案:

答案 0 :(得分:1)

您需要将tabLayout.TabLayoutOnPageChangeListener添加到viewPager,将TabLayout.OnTabSelectedListener添加到tabLayout

// kotlin样本

viewPager.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(tabLayout))
tabLayout.addOnTabSelectedListener(TabLayout.OnTabSelectedListener {
   override fun onTabSelected(tab: TabLayout.Tab) {
      //here the view pager will change
      viewPager.setCurrentItem(tab.position, false)
   }

   override fun onTabUnselected(tab: TabLayout.Tab) {

   }

   override fun onTabReselected(tab: TabLayout.Tab) {

   }
})

答案 1 :(得分:0)

app:tabGravity="center"仅适用于 app:tabMode="fixed" 因此,如果要使选项卡可滚动并居中对齐,则必须将选项卡模式设置为固定,否则选项卡将保持左对齐。