根据 android文档
子视图绘制在堆栈中,最近添加的子视图在顶部。
所以你需要安排你的布局如下
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<it.sephiroth.android.library.imagezoom.ImageViewTouch
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:contentDescription="@string/descr_image"
android:scaleType="fitXY" />
<include
android:id="@+id/top_bar"
layout="@layout/item_below_image_bar"
android:gravity="top" />
<include
android:id="@+id/below_bar"
layout="@layout/item_below_image_bar"
android:gravity="bottom" />
</FrameLayout>
在这种情况下,视图的实际位置不是由在 xml 中声明视图的顺序决定的。对于线性布局,这将是正确的,但对于 FrameLayout 则并非如此,在框架布局中,位置由重力决定,因此您的视图仍将放置在正确的位置,并且它们将按声明的顺序加载,所以首先是图像视图,然后第一个包含放在上面,然后第二个包含放在上面(但是在这种情况下它们不相交,所以没关系)。
编辑2:与山姆聊天后,我们能够找出问题,这是我们的解决方案
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:id="@+id/greenImage"
android:src="#2dff3d"/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="14dp"
android:layout_marginRight="14dp"
>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_alignParentRight="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Label"
android:id="@+id/textView"
android:layout_centerVertical="true"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginLeft="14dp"
android:layout_marginRight="14dp">
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_alignParentRight="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Label"
android:id="@+id/textView1"
android:layout_centerVertical="true"/>
</RelativeLayout>
</FrameLayout>
请注意 layout_gravity 的用法与重力相对应。