Android:ListView与其下方的视图重叠

时间:2014-12-24 22:19:27

标签: android xml listview

我正在尝试实现一个SlidingMenu,它顶部有一个“User Profile”,下面是一个可选模块列表。

以下是我目前的截图: enter image description here

这一切都按计划进行,但是如果你注意到底部附近有一个白色的缝隙,我已经尝试了所有的东西让这个白色的酒吧离开,我已经给出了相同背景颜色下的布局,我已经将ListView的高度增加到“fill_parent”。我改变的任何事情都会影响我的整个布局。

以下是描述出现问题的屏幕截图: enter image description here

视图本身看起来并不那么糟糕,但是ListView“已经消失”了,所以我原本以为它仍然正常运行...

我给RelativeLayout一个稍微透明的背景,我可以看到ListView与此布局重叠。

请帮我弄清楚为什么z顺序正在发生变化,或者帮助我找出原因,这比它需要的更令人沮丧。

sliding_menu.xml

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <RelativeLayout
        android:id="@+id/left_drawer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#FF0000FF">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"
                    android:background="#ff0">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="168dp"
                        android:background="#f00">

                        <LinearLayout
                            android:id="@+id/rlProfile"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_gravity="bottom"
                            android:orientation="horizontal"
                            android:padding="8dp" >

                            <com.towbook.mobile.classes.RoundedImageView
                                android:id="@+id/avatar"
                                android:layout_width="55dp"
                                android:layout_height="55dp"
                                android:src="@drawable/square1" />

                            <LinearLayout
                                android:layout_width="wrap_content"
                                android:layout_height="55dp"
                                android:layout_marginLeft="15dp"
                                android:orientation="vertical" >


                                <TextView
                                    style="@style/fontSizeTitle"
                                    android:id="@+id/title"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:ellipsize="end"
                                    android:shadowColor="@color/white"
                                    android:shadowDx="0"
                                    android:shadowDy="-1"
                                    android:shadowRadius="0.5"
                                    android:singleLine="true"
                                    android:text="Shane Denomme"
                                    android:textColor="@color/white"
                                    android:textStyle="bold" />

                                <TextView
                                    style="@style/fontSizeContent"
                                    android:id="@+id/desc"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_gravity="bottom"
                                    android:layout_marginTop="4dp"
                                    android:ellipsize="end"
                                    android:shadowColor="@color/white"
                                    android:shadowDx="0"
                                    android:shadowDy="-1"
                                    android:shadowRadius="0.5"
                                    android:singleLine="true"
                                    android:text="sdenomme15@gmail.com"
                                    android:textColor="@color/white" />
                            </LinearLayout>
                        </LinearLayout>
                    </LinearLayout>

                    <ListView
                        android:id="@android:id/list"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="@color/sliding_menu_bg"/>

                    <!-- All your menu options goes here -->

                </LinearLayout>
    </RelativeLayout>
</FrameLayout>

2 个答案:

答案 0 :(得分:0)

你也可以使用LinearLayout,layout_height =&#34; match_parent&#34;,垂直方向来解决这个问题

您可以将ListView的layout_height设置为0dp并将layout_weight设置为1

然后它将尝试消耗LinearLayout

中的所有剩余空间

答案 1 :(得分:0)

我已经找到了解决问题的方法,但它并没有出现在我最初怀疑的地方。问题出现在我对SlidingMenu的声明中:

    // set the Behind View
    setBehindContentView(R.layout.menu_frame);

    FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
    mFrag = new MenuListFragment();
    t.replace(R.id.menu_frame, mFrag);
    t.commit();

这里我将替换R.id.menu_frame。这是错误的id,应该是R.id.left_drawer。如此处所定义:

    <RelativeLayout
    android:id="@+id/left_drawer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#FF0000FF">

这导致第二个listview出现在原始列表视图的顶部,这就是导致它与空列表视图重叠的原因。