Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android TabLayout的不同选项卡模式_Android_Android Layout_Android Tablayout - Fatal编程技术网

Android 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”或

我用的是ViewPager和TabLayout。如果选项卡可以放置在显示选项卡模式上,则它们必须:

app:tabMode="fixed"
否则


我该怎么做呢?

我不明白你的问题,但我可以帮你, 如果选项卡计数是静态的或固定的(您知道选项卡的数量),则
app:tabMode=“fixed”

如果tabs count是动态的(数据来自提要),那么
app:tabMode=“scrollable”

我没有收到您的问题,但android文档中给出了答案

何时应该使用app:tabMode=“fixed”或app:tabMode=“scrollable”

  • tabMode=“fixed”固定选项卡同时显示所有选项卡,最好与从选项卡之间的快速旋转中获益的内容一起使用

  • app:tabMode=“scrollable”可滚动选项卡在任何给定时刻显示选项卡的子集,可以包含更长的选项卡标签和更多的选项卡。当用户不需要直接比较选项卡标签时,它们最适合用于在触摸界面中浏览上下文。此模式通常与ViewPager一起使用


  • 如果问题是对于某些屏幕配置(例如小屏幕、纵向配置等),选项卡需要可滚动,因为它们不适合屏幕,对于其他屏幕配置/大小,选项卡的数量完全适合屏幕,您可以使用资源限定符为不同的屏幕配置/大小定义不同的选项卡

    例如,假设您的标签不适合纵向,但适合横向。因此,人们可能希望选项卡在纵向上是可滚动的,在横向上是固定的

    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);