提问者:小点点

TabLayout模式可滚动不适合平板电脑


我的tablayout:

<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、后和重现。在手机上,选项卡宽度不一样,所以它们可以很好地适应DialogFragment。但是在平板电脑上,它们的宽度变得一样,即使这三个单词的长度非常不同。

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


共1个答案

匿名用户

用这个可能会有帮助。我可以这样显示Tab。

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