我有一个包含Tabhost的布局。标签位于屏幕的底部。第一个选项卡启动一个ActivityGroup。该ActivityGroup中的第一个活动包含一个scrollview。当内容显示在滚动视图中并且您完全向下滚动时,滚动视图的底部将隐藏在选项卡后面。任何想法如何解决这个问题?
当我启动活动组时,我使用此代码:
Window window = getLocalActivityManager().startActivity(pActivityClass.getName(), intent);
setContentView(window.getDecorView());
装饰是否可以查看整个屏幕?我只是希望视图成为tabcontent。 这是主要布局:
<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">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_alignParentTop="true"/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
</TabHost>
以下是tabcoltent中我想要的视图:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myScrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<RelativeLayout android:id="@+id/myLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp"/>
... a bunch of other components ...
</RelativeLayout>
</ScrollView>
答案 0 :(得分:4)
修复您的布局,使内容视图适合标签窗口小部件,而不是填充整个父容器,告诉它布局为RelativeLayout
的完整大小,然后放置TabWidget
在上面。更像是这样:
<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">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@android:id/tabs"/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
</TabHost>
我还删除了一些不必要的内容,例如android:orientation
,RelativeLayout
内没有任何内容。
HTH
答案 1 :(得分:1)
最佳结果。
android:minWidth = 增加...的值
<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:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="none" >
<TabWidget
**android:minWidth="480dp"**
android:id="@android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TabWidget>
</HorizontalScrollView>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
</TabHost>
答案 2 :(得分:1)
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@android:id/tabs"/>
这里的关键是
android:layout_above="@android:id/tabs"
答案 3 :(得分:0)
我知道可能有一种“正确”的方式来做到这一点,但我刚刚添加了
<LinearLayout android:layout_width="fill_parent"
android:layout_height="50dp"></LinearLayout>
到我正在加载到选项卡的xml文件的底部。
另外user1060374是正确的,FrameLayout需要在Tabwidget之上,否则如果内容需要滚动,则scrollview将隐藏(位于顶部)tabbar。 但这样做不会回答你的问题,所以我添加了填充。