在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。它应该保持在与填充无关的中心。
查看此解决方案: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);
希望这个有帮助。