TabWidget选项卡限制

发布于 2024-11-03 16:54:07 字数 263 浏览 0 评论 0原文

我有一个 Android 应用程序,目前有 9 个选项卡。每当添加新选项卡时,所有选项卡的宽度都会调整得更小。我觉得添加另一个选项卡会使选项卡太小。有没有办法让 TabWidget 的侧面出现右/左箭头,类似于 .NET 选项卡控件,或者将 TabWidget 包装在 Horizo​​ntalScrollView 中会更好,如此处所述? 滚动选项卡小部件

I have an android application that currently has 9 tabs. Whenever a new tab is added, the widths of all the tabs are adjusted smaller. I feel that adding another tab will make the tabs too small. Is there a way to have a right/left arrow appear on the side of the TabWidget, similar to .NET tab controls, or would it be better to wrap a TabWidget in a HorizontalScrollView as described here? scrolling tabwidget

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

因为看清所以看轻 2024-11-10 16:54:07

简单地将 TabWidget 放入 Horizo​​ntalScrollView 中会遇到一个问题:
TabWidget 中的 View 不会填满屏幕并且具有不同的宽度。
您可以通过设置其 minWidth 并将 Horizo​​ntalScrollView 的 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);
    }
}

您不需要为 TabSpec 指标制作自己的 View

Simply putting TabWidget in a HorizontalScrollView will meet a problem:
View in TabWidget will not fill the screen and have different width.
You can avoid it by setting its minWidth and set the HorizontalScrollView's android:fillViewport as true.

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

and

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

So you don't need to make your own View for TabSpec indicators.

往事随风而去 2024-11-10 16:54:07

您可以将 TabWidget 放入 Horizo​​ntalScrollView 中,以便可以滚动选项卡。

有关示例,请参阅这篇文章

如果您需要在选项卡两侧放置按钮,您可以进一步包裹布局:
Horizo​​ntalScrollView 放入 RelativeLayout 中,并将 Buttons 放置在其左侧和右侧。在按钮的 OnClickListener 中,您可以通过编程方式滚动 TabWidget

You can put your TabWidget into a HorizontalScrollView, so you could scroll the tabs.

For an example, please see this post.

If you need buttons on the two side of your tabs, you can wrap further the layout:
put the HorizontalScrollView inside a RelativeLayout, and place Buttons to the left and right side of it. In the buttons' OnClickListener you can scroll the TabWidget programatically.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文