【问题标题】:Tab Layout fix only 5 tabs and other make scrollable?选项卡布局仅修复 5 个选项卡和其他可滚动?
【发布时间】:2016-02-18 20:08:30
【问题描述】:

我已经用 viewPager 实现了 tabLayout。我的要求是只修复设备宽度上的 5 个选项卡,如果超过 5 个,那么第 6 个选项卡应该是可滚动的。

我尝试使用 tabModes 作为固定和 tabMode 作为可滚动,我也尝试操纵宽度,但没有运气。

PagerTabStrip 的宽度也要随之修改。

任何形式的帮助或建议都将不胜感激。

【问题讨论】:

  • PagerTabStrip怎么样
  • 是的 pagerTabStrip 宽度也应该得到修改,感谢您的注意。
  • 你应该使用 TabLayout 代替..它是原生的和更好的方法。

标签: android android-tablayout


【解决方案1】:

您可以使用PagerTabStrip

PagerTabStrip 是当前、下一个和 ViewPager 的前几页。它旨在用作儿童 XML 布局中的 ViewPager 小部件的视图。

请查看演示PagerSlidingTabStrip

【讨论】:

  • 好的,但我不确定它是否能满足我的要求,我总共有 20 个项目,当用户登陆屏幕时我只想显示 5 个项目,5 个项目之后是其他项目应该是可滚动的。因为,现在如果将其设置为 tabMode 为可滚动,则根据设备宽度设置为 4 个项目。并且在 4 之后它是可滚动的,如果我将 tabMode 设置为固定,它可以容纳所有数据而无需滚动。
  • 是否可以在每个设备中只设置 5 或 6 个选项卡,用于滚动视图的选项卡布局。默认为scrollView动态计算每个tab的宽度。
  • 你可以试试Display Metric Rule 。但是不知道有没有用
【解决方案2】:

下载这两个文件并将其复制到您的项目中

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabLayout.java

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabStrip.java

然后尝试这样的事情

 ViewPager pager= (ViewPager) findViewById(R.id.pager);//your pager id
  SlidingTabLayout slidingTabLayout= (SlidingTabLayout) findViewById(R.id.sliding_tab);
        TabsPagerAdapter tabsPagerAdapter=new TabsPagerAdapter(getSupportFragmentManager());

        pager.setAdapter(tabsPagerAdapter);
        slidingTabLayout.setDistributeEvenly(true);
        slidingTabLayout.setViewPager(pager); 

你的 xml 文件会是这样的

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent" android:layout_width="match_parent">

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/toolbar"
        android:background="@color/primary"
        android:minHeight="?attr/actionBarSize">
    </android.support.v7.widget.Toolbar>


    <com.example.SlidingTabLayout
        android:layout_below="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/sliding_tab">



    </com.example.SlidingTabLayout>


    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_below="@+id/sliding_tab"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </android.support.v4.view.ViewPager>
</RelativeLayout>

【讨论】:

  • 您在这里使用的是slidingTab布局,它可以均匀分布项目。我正在使用 TabLayout,我的要求是 diffn,请再次阅读我的问题,不要回答它,只是因为你想。
猜你喜欢
  • 1970-01-01
  • 2018-06-08
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
相关资源
最近更新 更多