Android Tabview不会在触摸时更改选项卡

Android Tabview不会在触摸时更改选项卡,android,tabs,touch,Android,Tabs,Touch,我环顾了谷歌和stack overflow,想找到一个解决方案,但我似乎不明白为什么我不能让它工作,我遵循我所看到的一切。 我这里的问题是,每当我触摸一个标签时,它不会变为我选择的标签。现在,我正在按照[This Stackoverflow post][1]中的说明进行操作,请注意,当完全刷卡时,标签可以正常工作 以下是选项卡视图的XML <?xml version="1.0" encoding="utf-8"?> <android.support.design.wid

我环顾了谷歌和stack overflow,想找到一个解决方案,但我似乎不明白为什么我不能让它工作,我遵循我所看到的一切。 我这里的问题是,每当我触摸一个标签时,它不会变为我选择的标签。现在,我正在按照[This Stackoverflow post][1]中的说明进行操作,请注意,当完全刷卡时,标签可以正常工作

以下是选项卡视图的XML

    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabGravity="fill"
        app:tabMode="scrollable"
        app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget" />
    <android.support.v4.view.ViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tabs"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
同样在我的主要活动中,我有这个方法来创建我的选项卡。(本文编辑的选项卡名和片段名)

同样在主要活动中,我有这个,但它似乎不工作点击。虽然我检查了Log.d,但它在刷卡时起作用

   tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
          @Override
          public void onTabSelected(TabLayout.Tab tab) {
              viewPager.setCurrentItem(tab.getPosition());
              Log.d("Tab", String.valueOf(tab.getPosition()));
          }

          @Override
          public void onTabUnselected(TabLayout.Tab tab) {

          }

          @Override
          public void onTabReselected(TabLayout.Tab tab) {

          }
      });

在父级或坐标布局中使用相对布局,如下代码所示




TabLayout
移动到
ViewPager

的底部
ViewPager
覆盖了
TabLayout
,因为
CoordinatorLayout
基本上就像一个
FrameLayout
用于没有
行为的儿童。实际上,您可以将
表格布局
放入
查看页面
中,它将处理定位
TableLayout
将负责自身设置,因此您可以省略
setupWithViewPager()
调用。实际上,如果这些是
CoordinatorLayout
中仅有的内容,那么您就不会真正使用
CoordinatorLayout
来设计它。如果是这样的话,您可以将其更改为垂直
线性布局
;tyr尝试在代码行上方添加代码,但代码没有更改@MikeM我也试过你的解决方案。它可以工作,但选项卡视图将我的可回收视图向下推
    private void setupViewPager(ViewPager viewPager) {
SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager());
    adapter.addFragment(new 1_Fragment(),"tab1");
    adapter.addFragment(new 2_Fragment(),"tab2");
    adapter.addFragment(new 3_Fragment(),"tab3");
    adapter.addFragment(new 4_Fragment(),"tab4");
    adapter.addFragment(new 5_Fragment(),"tab5");
    adapter.addFragment(new 6_Fragment(),"tab6");
    adapter.addFragment(new 7_Fragment(),"tab7");
    viewPager.setAdapter(adapter);
}
   tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
          @Override
          public void onTabSelected(TabLayout.Tab tab) {
              viewPager.setCurrentItem(tab.getPosition());
              Log.d("Tab", String.valueOf(tab.getPosition()));
          }

          @Override
          public void onTabUnselected(TabLayout.Tab tab) {

          }

          @Override
          public void onTabReselected(TabLayout.Tab tab) {

          }
      });
<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/color_white"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways|snap"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    </android.support.v7.widget.Toolbar>


    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="5dp"
        android:background="@color/color_light_blue_1"
        android:paddingRight="2dp"
        android:paddingTop="2dp"
        app:tabBackground="@drawable/tab_selector_products"
        app:tabIndicatorHeight="0dp"
        app:tabTextAppearance="@style/MineCustomTabText" />

</android.support.design.widget.AppBarLayout>


<android.support.v4.view.ViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />
   <?xml version="1.0" encoding="utf-8"?>
   <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.v4.view.ViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tabs"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabGravity="fill"
        app:tabMode="scrollable"
        app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget" />

</android.support.design.widget.CoordinatorLayout>