我正在尝试实现一个SlidingMenu,它顶部有一个“User Profile”,下面是一个可选模块列表。
以下是我目前的截图:
这一切都按计划进行,但是如果你注意到底部附近有一个白色的缝隙,我已经尝试了所有的东西让这个白色的酒吧离开,我已经给出了相同背景颜色下的布局,我已经将ListView的高度增加到“fill_parent”。我改变的任何事情都会影响我的整个布局。
以下是描述出现问题的屏幕截图:
视图本身看起来并不那么糟糕,但是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>
答案 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出现在原始列表视图的顶部,这就是导致它与空列表视图重叠的原因。