Android - ScrollView 内的 TabHost
我正在编写一个实现嵌套选项卡的应用程序。因为两组选项卡占用相当多的空间,并且通常因为内容的性质,我想将整个内部 TabHost 放入可滚动结构中。我可以制作外部活动FrameLayout、LinearLayout、甚至ViewFlipper的tabcontent;当我尝试使其成为 ScrollView 时,程序崩溃了。
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ScrollView
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</TabHost>
显然 TabHost 喜欢住在不可滚动的框架内。有什么办法可以解决这个问题而不造成很大的混乱吗?
I'm writing an app that implements nested tabs. Because two sets of tabs occupy quite a bit of space and generally because the nature of the content I would like to place the whole inner TabHost into a scrollable structure. I can make tabcontent of the outer activity FrameLayout, LinearLayout, even ViewFlipper; when I try to make it ScrollView, the program crashes.
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ScrollView
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</TabHost>
So apparently TabHost likes to live inside non-scrollable frames. Is there any way to go around this without creating a whole lot of a mess?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
抱歉,我自己想出来了。解决方案是将第二个 TabHost 包装在 ScrollView 自己的 XML 文件中。效果很好。
外层:
内层:
Sorry I figured it out on my own. The solution is to wrap the second TabHost inside a ScrollView within its own XML file. That works just fine.
Outer:
Inner: