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