提问者:小点点

Android TabLayout与活动选项卡始终居中,就像在Play报摊应用程序中一样


android.support.design. widget.TabLayout中,如何使活动选项卡始终显示在中心,就像在Play报摊应用程序中一样,如下所示。

第一个和最后一个选项卡也应该出现在中心。

我尝试在TabLayout上使用填充。它不起作用。这是我写的代码:

<android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:tabIndicatorColor="@color/yellow"
            app:tabSelectedTextColor="@android:color/white"
            app:tabTextColor="#EEE"
            app:tabMode="scrollable"
            android:gravity="bottom"
            android:clipToPadding="false"
            android:paddingLeft="90dp"
            android:paddingRight="90dp"
            />

在这种情况下,tabIndex也将从左侧移位90dp。它应该保持在与填充无关的中心。


共2个答案

匿名用户

查看此解决方案:https://stackoverflow.com/a/36886331/651770

可以通过tabContentStart解决,但是如果你想让Tablayout的两边居中,你需要扩展这个类并手动设置填充。

匿名用户

也许有点晚,但你可以尝试使用这个库:

https://github.com/jpardogo/PagerSlidingTabStrip

这可以像他们所说的那样做到:

在build. gradle文件中包含以下依赖项。

compile 'com.jpardogo.materialtabstrip:library:1.1.1'

或者将库添加为项目。我尝试发送拉取请求,但看起来原始开发人员不再维护它了。

在您的布局中包含PagerSlidingTab地带小部件。这通常应该放在它所代表的ViewPager上方。

<com.astuetz.PagerSlidingTabStrip
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary" />

在您的onCreate方法(或片段的onCreateView)中,将小部件绑定到ViewPager:

// Initialize the ViewPager and set an adapter
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new TestAdapter(getSupportFragmentManager()));

// Bind the tabs to the ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);

希望这个有帮助。