0

我有一个重叠的布局,这是由这个 XML 文件引起的,我在下面解释了这个问题的原因:

<FrameLayout
    android:id="@+id/main_frame_top_navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >
</FrameLayout>

<FrameLayout
    android:id="@+id/main_frame_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_below="@+id/main_frame_top_navigation" >
</FrameLayout>

<FrameLayout
    android:id="@+id/main_frame_tab"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/main_frame_button" >
</FrameLayout>


<FrameLayout
    android:id="@+id/translucent_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/main_frame_tab" >
</FrameLayout>

<FrameLayout
    android:id="@+id/main_frame_content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/main_frame_tab" >
</FrameLayout>

<FrameLayout
    android:id="@+id/main_frame_title_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/main_frame_content"
    android:orientation="horizontal" >
</FrameLayout>

<FrameLayout
    android:id="@+id/main_frame_time_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/main_frame_title_bar"
    android:orientation="horizontal" >
</FrameLayout>

<FrameLayout
    android:id="@+id/main_frame_login"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/main_frame_time_bar"
    android:orientation="horizontal" >
</FrameLayout>

<FrameLayout
    android:id="@+id/main_frame_bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_below="@+id/main_frame_login"
    android:layout_alignParentRight="true" >
</FrameLayout>

呈现的布局是所有容器的列表。现在将容器放在上面之后,我注意到有一个错误,因为我有一个重叠。

这是我的应用程序的 UI:

在此处输入图像描述

应用程序的主容器添加到main_frame_tab高度match_parent,因为它的高度取决于下面的当前容器。不能改成,wrap_content因为我不会达到我想要的,也不会解决这个问题。

这个重叠错误的主要原因是菜单的某些内容实际上放在了页面底部的菜单下。

为了进一步解释,您还可以注意到容器的设置一直使用layout_below到中间,并且在我使用的底部容器上,并且中间layout_above有一个未连接的空间,这可能导致重叠。

有什么方法可以解决这种重叠结构?

4

1 回答 1

0
// try this

<FrameLayout
        android:id="@+id/main_frame_top_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/main_frame_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/main_frame_top_navigation" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/main_frame_tab"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/main_frame_button" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/translucent_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/main_frame_tab" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/main_frame_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/translucent_container"
        android:layout_marginLeft="5dp"
        android:layout_below="@id/main_frame_tab" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/main_frame_title_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/main_frame_content"
        android:orientation="horizontal" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/main_frame_time_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/main_frame_title_bar"
        android:orientation="horizontal" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/main_frame_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/main_frame_time_bar"
        android:orientation="horizontal" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/main_frame_bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/main_frame_login" >
    </FrameLayout>
于 2013-09-13T07:10:32.830 回答