Tabview不会更改触摸式标签

时间:2018-08-01 09:12:05

标签: android tabs touch

我四处寻找Google和堆栈溢出问题,以找到解决方案,但是我似乎无法理解为什么我无法使它正常工作,我会遵循我所看到的一切。 我的问题是,每当我触摸选项卡时,它都不会更改为我选择的选项卡。看着我正在按照[这篇Stackoverflow帖子] [1]的指示进行操作,请注意,这些选项卡在完美滑动时会起作用

这是tabview的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>

我在主要活动中也添加了此内容。 (容器用于我的回收者视图)

  TabLayout tabLayout = findViewById(R.id.tabs);
        viewPager = findViewById(R.id.container);  
        setupViewPager(viewPager);
        tabLayout.setupWithViewPager(viewPager);

在我的主要活动中,我也有使用此方法创建选项卡。 (本文中编辑的标签名和片段名)

    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);
}

在主要活动中,我也有这个功能,但单击似乎不起作用。尽管我用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) {

          }
      });

2 个答案:

答案 0 :(得分:0)

在父级或CoordinatorLayout中使用相对布局,如下代码。

x<-c(1,2,3,4,5,6,6,7,8,9,10,11,12)


qplot(x,geom='histogram',fill=I("red"), col=I("darkred"),xlab="Maand",ylab="Hoeveelheid",bins=12)

答案 1 :(得分:0)

   <?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>

TabLayout移至ViewPager的底部