Android TabLayout的不同选项卡模式
我用的是ViewPager和TabLayout。如果选项卡可以放置在显示选项卡模式上,则它们必须:Android TabLayout的不同选项卡模式,android,android-layout,android-tablayout,Android,Android Layout,Android Tablayout,我用的是ViewPager和TabLayout。如果选项卡可以放置在显示选项卡模式上,则它们必须: app:tabMode="fixed" 否则 我该怎么做呢?我不明白你的问题,但我可以帮你, 如果选项卡计数是静态的或固定的(您知道选项卡的数量),则app:tabMode=“fixed” 如果tabs count是动态的(数据来自提要),那么app:tabMode=“scrollable”我没有收到您的问题,但android文档中给出了答案 何时应该使用app:tabMode=“fixed”或
app:tabMode="fixed"
否则
我该怎么做呢?我不明白你的问题,但我可以帮你, 如果选项卡计数是静态的或固定的(您知道选项卡的数量),则
app:tabMode=“fixed”
如果tabs count是动态的(数据来自提要),那么
app:tabMode=“scrollable”
我没有收到您的问题,但android文档中给出了答案
何时应该使用app:tabMode=“fixed”或app:tabMode=“scrollable”
如果问题是对于某些屏幕配置(例如小屏幕、纵向配置等),选项卡需要可滚动,因为它们不适合屏幕,对于其他屏幕配置/大小,选项卡的数量完全适合屏幕,您可以使用资源限定符为不同的屏幕配置/大小定义不同的选项卡 例如,假设您的标签不适合纵向,但适合横向。因此,人们可能希望选项卡在纵向上是可滚动的,在横向上是固定的
res/layout/tabs.xml
将包含在纵向中使用的tablayout
:
<?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" />
然后,在包含选项卡的布局中,只需将其包括在内,如下所示:
<include layout="@layout/tabs" />
希望这就是您想要的。在xml布局中,我声明 固定的 在fragment 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);
}
}
if(tabLayout==null){
tabLayout=(tabLayout)view.findviewbyd(R.id.tabs);
DisplayMetrics=新的DisplayMetrics();
WindowManager wm=(WindowManager)view.getContext().getSystemService(Context.WINDOW\u服务);
wm.getDefaultDisplay().getMetrics(metrics);
int width=metrics.widthPixels;
int height=metrics.heightPixels;
double wi=(double)width/(double)metrics.xdpi;
双高=(双)高/(双)度量.ydpi;
双x=数学功率(wi,2);
双y=数学功率(hi,2);
双屏幕英寸=数学sqrt(x+y);
如果(屏幕英寸<4){
tabLayout.setTabMode(tabLayout.MODE可滚动);
}
}
有两种选项卡模式可用于TabLayout:
app:tabMode="fixed"
app:tabMode="scrollable"
从程序上来说,这就像
tabLayout.setTabMode(TabLayout. MODE_FIXED);
tabLayout.setTabMode(TabLayout. MODE_SCROLLABLE);
以上与可滚动模式相同
要了解表格布局模式,您可以参考下面的链接
你的问题是什么?可能重复的问题:可能的答案:
app:tabMode="fixed"
app:tabMode="scrollable"
tabLayout.setTabMode(TabLayout. MODE_FIXED);
tabLayout.setTabMode(TabLayout. MODE_SCROLLABLE);