我正在使用ViewPager和TabLayout。如果选项卡可以放在显示选项卡上,则它们必须是:
app:tabMode="fixed"
其他
app:tabMode="scrollable"
我该怎么做?
答案 0 :(得分:3)
我没有得到你的问题,但我可以帮助你,
如果标签计数是静态的或固定的(您知道标签数量),那么app:tabMode="fixed"
如果标签计数是动态的(来自Feed的数据),那么app:tabMode="scrollable"
答案 1 :(得分:1)
如果问题出现在某些屏幕配置(例如小屏幕,纵向配置等)上,则标签需要可滚动,因为它们不适合屏幕,而对于其他屏幕配置/尺寸,选项卡完全适合屏幕,您可以使用资源限定符以不同的屏幕配置/大小不同地定义选项卡。
例如,假设您的标签不适合纵向但适合横向。因此,可能希望标签在纵向中为scrollable
,在横向中为fixed
。
res/layout/tabs.xml
将包含要在纵向中使用的TablLayout
:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tabs"
app:tabMode="scrollable"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
和res/layout-land/tabs.xml
将包含横向中使用的TabLayout
:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
然后在包含选项卡的布局中,只需包括它:
<include layout="@layout/tabs" />
希望这是你正在寻找的。 p>
答案 2 :(得分:1)
在xml布局中,我声明了
固定
在片段java类中,我做了这个:
if (tabLayout == null) {
tabLayout = (TabLayout) view.findViewById(R.id.tabs);
DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
double wi = (double) width / (double) metrics.xdpi;
double hi = (double) height / (double) metrics.ydpi;
double x = Math.pow(wi, 2);
double y = Math.pow(hi, 2);
double screenInches = Math.sqrt(x + y);
if (screenInches < 4) {
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
}
}
答案 3 :(得分:1)
我们可以在TabLayout中使用两种tabMode:
app:tabMode="fixed"
app:tabMode="scrollable"
在编程上就像
tabLayout.setTabMode(TabLayout. MODE_FIXED);
tabLayout.setTabMode(TabLayout. MODE_SCROLLABLE);
与MODE_SCROLLABLE相同
要了解TabLayout模式,可以在下面参考链接 https://developer.android.com/reference/android/support/design/widget/TabLayout
答案 4 :(得分:0)
我没有得到你的问题,但在android文档中给出了答案
何时应该使用app:tabMode =“fixed”或app:tabMode =“scrollable”
tabMode =“fixed”固定标签可同时显示所有标签,最适用于受益于标签之间快速支点的内容。
app:tabMode =“scrollable”可滚动标签在任何给定时刻显示标签的子集,并且可以包含更长的标签标签和更多数量的标签。当用户不需要直接比较标签标签时,它们最适合用于浏览触摸界面中的上下文。此模式通常与ViewPager一起使用。