正如你所看到的,我有一个底栏(它没有使用TabHost或任何东西,部分是因为显然它的折旧但也部分因为这只是在应用程序中的两个活动所以我不需要做一个选项卡主持两页)。无论如何,标签栏下面有“内容”。 Android不会进一步滚动,因为它看到内容是可见的,但事实并非如此。
我的问题是将内容放在标签栏上方的最佳方式。
我有一些想法:
您可能对我的xml结构感兴趣:
<RelativeLayout>
<ScrollView>
<LinearLayout>
<RelativeLayout>
<LinearLayout>
</LinearLayout>
<LinearLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
<LinearLayout>
TAB BAR
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:3)
如果您的TAB BAR具有固定高度,则可以设置ScrollView
margin bottom属性。这将始终显示您的ScrollView
数据高于TAB BAR
答案 1 :(得分:0)
除了@Antarix Tandon的回答,您可以将根相对布局更改为垂直线性布局。
答案 2 :(得分:0)
RelativeLayout
愉快地将所有孩子放在彼此之上。一些想法来解决它:
将前RelativeLayout
更改为LinearLayout
,orientation="vertical"
并将ScrollView
layout_weight
指定为非零值,以便标签栏始终为在底部,滚动视图占用所有剩余的垂直空间。
保留RelativeLayout
,但首先使用layout_alignParentBottom="true"
布置标签栏,然后使用layout_above="@id/your_tabbar_id"
布置滚动视图。
答案 3 :(得分:0)
在xml中为标签栏指定一个视图ID,然后将其后面显示的视图设置为“layout_above”标签栏视图,并确保它们都位于相同的RelativeLayout内。
所以,例如:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/bottom_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
<LinearLayout
android:id="@+id/top_area"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/bottom_bar"
android:orientation="vertical" />
</RelativeLayout>
这将导致后面的内容被推到上面,然后您可以将top_area布局放入滚动视图中,然后滚动视图可以滚动并始终位于底部栏上方。
例如:
<ScrollView
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/bottom_bar" >
<LinearLayout
android:id="@+id/top_area"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" />
</ScrollView>
这会将scrollview放在底栏上方,top_area布局包含在其中并且可滚动