TabWidget选项卡限制

时间:2011-04-28 11:44:57

标签: android tabcontrol

我有一个Android应用程序,目前有9个标签。每当添加新选项卡时,所有选项卡的宽度都会调整得更小。我觉得添加另一个标签会使标签太小。是否有一种方法可以在TabWidget的一侧显示右/左箭头,类似于.NET选项卡控件,或者如果将TabWidget包装在Horizo​​ntalScrollView中更好? scrolling tabwidget

2 个答案:

答案 0 :(得分:6)

简单地将TabWidget放入HorizontalScrollView会遇到问题:
View中的TabWidget不会填满屏幕并且宽度不同 您可以通过设置minWidth并将HorizontalScrollView的android:fillViewport设置为true来避免它。

<HorizontalScrollView ... android:fillViewport="true">  
    <TabWidget android:id="@android:id/tabs" ... />
</HorizontalScrollView>

int dips = 70; // The min width you want in DIP
int pixels = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float) dips, getResources().getDisplayMetrics());
    TabWidget widget = tabHost.getTabWidget();
    for (int i = 0; i < widget.getChildCount(); ++i) {
        View v = widget.getChildAt(i);
        v.setMinimumWidth(pixels);
    }
}

因此,您无需为View指标制作自己的TabSpec

答案 1 :(得分:4)

您可以将TabWidget放入HorizontalScrollView,以便滚动标签。

例如,请参阅this post

如果您需要选项卡两侧的按钮,则可以进一步包装布局:
HorizontalScrollView放在RelativeLayout内,并将Buttons放在其左侧和右侧。在按钮“OnClickListener中,您可以以编程方式滚动TabWidget