0

如您所见,我有一个底栏(它没有使用 TabHost 或任何东西,部分原因是它显然已贬值,但部分原因是这仅适用于应用程序中的两个活动,因此我不需要只做一个标签主机两页)。无论如何,该标签栏“下方”有内容。Android 不会进一步滚动,因为它认为内容是可见的,但实际上并非如此。

我的问题是将内容放在标签栏上方的最佳方式是什么。

我的一些想法:

  1. 设置高度(因为标签栏设置高度)和 wrap_content 宽度的透明图像。这是行不通的。
  2. 使用标签栏的背景,使其看起来不显眼。
  3. 使底部栏不透明,并在那里放置任何东西,并设置高度。

您可能对我的 xml 结构感兴趣:

 <RelativeLayout>
   <ScrollView>
     <LinearLayout>
       <RelativeLayout>
         <LinearLayout>

         </LinearLayout>

         <LinearLayout>

         </LinearLayout>
       </RelativeLayout>
     </LinearLayout>
   </ScrollView>
   <LinearLayout>
     TAB BAR
   </LinearLayout>
 </RelativeLayout>

截屏

4

4 回答 4

3

如果您的 TAB BAR 具有固定高度,则可以设置ScrollView边距底部属性。这将始终ScrollView在 TAB BAR 上方显示您的数据

于 2012-09-11T10:37:46.063 回答
0

Alternatively to @Antarix Tandon's answer, you could change your root relative layout to be a vertical linear layout.

于 2012-09-11T10:40:21.073 回答
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>

这会将滚动视图放置在底部栏上方,其中包含 top_area 布局并可滚动

于 2012-09-11T10:46:35.307 回答
0

RelativeLayout除非另有说明,否则会愉快地将其所有子代放在彼此之上。修复它的一些想法:

  • 将顶部更改RelativeLayoutLinearLayout带有orientation="vertical"ScrollView layout_weight指定为非零值,以便标签栏始终位于底部,并且滚动视图占据所有剩余的垂直空间。

  • 保留RelativeLayout但首先使用布局选项卡栏layout_alignParentBottom="true",然后使用layout_above="@id/your_tabbar_id".

于 2012-09-11T10:42:01.037 回答