【问题标题】:TabLayout Mode scrollable doesn't fit well for tabletsTabLayout Mode 可滚动不适合平板电脑
【发布时间】:2016-03-04 02:02:02
【问题描述】:

我的标签布局:

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:tabMode="scrollable"/>

这是手机上的结果:

在平板电脑上:

您可以看到我有 3 个选项卡:at、after 和recurrence。在手机上,标签宽度不一样,因此它们非常适合DialogFragment。但是在平板电脑上,即使这三个字的长度相差很大,它们的宽度也一样。

我的 SDK 版本是 Android 4.1(手机)和 4.3(平板电脑,我也在 4.4 上测试过,同样的问题)。我该如何解决这个问题?

【问题讨论】:

    标签: android android-design-library android-tablayout


    【解决方案1】:

    使用它可能会有所帮助。我可以这样显示标签。

    public class CustomTabLayout extends TabLayout {
        public CustomTabLayout(Context context) {
            super(context);
        }
    
        public CustomTabLayout(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public CustomTabLayout(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
            try {
                if (getTabCount() == 0)
                    return;
                Field field = TabLayout.class.getDeclaredField("mTabMinWidth");
                field.setAccessible(true);
                field.set(this, (int) (getMeasuredWidth() / (float) getTabCount()));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    【讨论】:

    • 我明白了你的想法。现在我在我的layout.xml 中为TabLayout 添加app:tabMinWidth="56dp",结果很好。谢谢。
    • 如果它对你有帮助,那么标记它接受答案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多