使用match_parent在ListView中覆盖RelativeLayout

时间:2014-05-24 10:01:50

标签: android xml android-layout relativelayout

我正在处理一个奇怪的问题。

我对ListView行使用以下布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:jn="http://schemas.android.com/apk/res/com.appeaser.justnoteproject"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <BUNCH OF VIEWS />

    <RelativeLayout
        android:id="@+id/rlCon"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="@dimen/margin_note_bottom"
        android:layout_marginLeft="@dimen/margin_note_left"
        android:layout_marginRight="@dimen/margin_note_right"
        android:layout_marginTop="@dimen/margin_note_bottom" >

    <BUNCH OF VIEWS />

    <View
        android:id="@+id/vOverlay"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/blue_overlay"
        android:visibility="gone" />
    </RelativeLayout>

</RelativeLayout>

在我的列表适配器中,我根据特定条件切换vOverlay's可见性。但是,即使在切换可见性后,也不会显示vOverlay

要验证代码是否按预期工作,我将vOverlay的高度和宽度更改为50dp。当我这样做时,vOverlay's可见性按预期工作 - 除了我需要的大小是match_parent

有人可以解释我做错了什么吗?我怎样才能获得预期的结果?

1 个答案:

答案 0 :(得分:2)

用FrameLayout替换外部RelativeLayout并将叠加层移动到该FrameLayout的第二个子窗口