我的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和相同的问题)。我如何解决这个问题?
用这个可能会有帮助。我可以这样显示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();
}
}
}