相对布局视图重叠

Bar*_*rak 4 android android-layout

所需的布局是一个标题,下面有两个框架(稍后包含片段)和固定在屏幕底部的按钮:

     Header Text     
----------------------
frame 1   |  frame 2
----------------------
btn 1   btn 2   btn 3
Run Code Online (Sandbox Code Playgroud)

我几乎已经排序(最后是xml),有一个问题......两个框架重叠按钮。

我已经对该问题进行了一些搜索并发现了这一点,但所做的只是将我的问题从溢出按钮的框架更改为溢出标题的框架。

我还尝试将按钮设置为显示在框架下方而不是与父项的底部对齐,但这只是将它们推离了屏幕。

当前布局xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
            android:id="@+id/fdname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:clickable="true"
            android:gravity="center"
            android:text="No department info has been entered yet"
            android:textSize="25dp" />
    <TextView
            android:id="@+id/fdaddress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/fdname"
            android:gravity="center"
            android:text="address"
            android:textSize="15dp" />
    <TextView
            android:id="@+id/horizontalline"
            android:layout_width="match_parent"
            android:layout_height="2dip"
            android:layout_below="@id/fdaddress"
            android:background="#ff23cf"
            android:gravity="center_vertical"
            android:paddingBottom="2dip"
            android:paddingTop="2dip" />
    <LinearLayout
            android:id="@+id/frames"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/horizontalline"
            android:orientation="horizontal" >
            <FrameLayout
                    android:id="@+id/leftpane"
                    android:layout_width="0px"
                    android:layout_height="match_parent"
                    android:layout_weight="1" />
            <TextView
                    android:id="@+id/verticalline"
                    android:layout_width="2dp"
                    android:layout_height="match_parent"
                    android:background="#ff23cf"
                    android:gravity="center_horizontal"
                    android:paddingLeft="5dip"
                    android:paddingRight="5dip" />
            <FrameLayout
                    android:id="@+id/rightpane"
                    android:layout_width="0px"
                    android:layout_height="match_parent"
                    android:layout_weight="1" >
            </FrameLayout>
    </LinearLayout>
    <LinearLayout
            android:id="@+id/buttons"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center"
            android:orientation="horizontal" >
            <Button
                    android:id="@+id/EventViewButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:minHeight="25dp"
                    android:text="@string/menu_event_view"
                    android:textSize="15dp" 
                    android:layout_weight="1">
            </Button>
            <Button
                    android:id="@+id/MemberViewButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:minHeight="25dp"
                    android:text="@string/menu_member_view"
                    android:textSize="15dp" 
                    android:layout_weight="1">
            </Button>
            <Button
                    android:id="@+id/AttendanceViewButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:minHeight="25dp"
                    android:text="@string/menu_atnd_view"
                    android:textSize="15dp" 
                    android:layout_weight="1">
            </Button>
    </LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

jcx*_*ier 6

尝试LinearLayoutLinearLayout包含您的框架之前声明包含您的按钮,保留android:layout_alignParentBottom="true"属性。

然后,到您的框架容器,添加一个above约束:

android:layout_below="@id/horizontalline"
android:layout_above="@id/buttons"
Run Code Online (Sandbox Code Playgroud)

这种方式应该迫使你的框架成为屏幕上最后绘制的东西,从而填充剩余的空间。

希望它有效!

  • 好的,吸取教训。不要*不要*依靠图形布局来向您展示实际发生的情况。一旦我应用了代码并实际在框架中显示了一个视图,它就会看起来和工作正常(您在答案中建议进行更改)。谢谢您的帮助! (2认同)