我有一个ListView
的布局,它伸展到父容器的底部,即使我已经指定它应该wrap_content
:
<?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:padding="7dp">
<TextView
android:id="@+id/lblLogs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="System Logs"
android:textStyle="bold" />
<ListView
android:id="@android:id/list"
android:layout_below="@id/lblLogs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnEmailLogs"
android:text="Email Logs"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_centerInParent="true" />
</RelativeLayout>
这导致底部的Button
与ListView
重叠,如下所示:
如何阻止ListView一直到底部,以便按钮不会重叠?
答案 0 :(得分:3)
尝试在listview中使用
android:layout_above="@id/btnEmailLogs"
答案 1 :(得分:2)
解决方案是将布局更改为LinearLayout
并添加android:layout_weight="1"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="7dp"
android:orientation="vertical">
<TextView
android:id="@+id/lblLogs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="System Logs"
android:textStyle="bold" />
<ListView
android:id="@android:id/list"
android:layout_below="@id/lblLogs"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
<Button
android:id="@+id/btnEmailLogs"
android:text="Email Logs"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
答案 2 :(得分:0)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="7dp">
<TextView
android:id="@+id/lblLogs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="System Logs"
android:textStyle="bold" />
<ListView
android:id="@+id/list"
android:layout_below="@id/lblLogs"
android:layout_width="fill_parent"
android:layout_above="@+id/btnEmailLogs"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnEmailLogs"
android:text="Email Logs"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_centerInParent="true" />
希望这能解决你的问题。
答案 3 :(得分:0)
如果您尝试通过代码::
进行处理RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(width, height);
int windowheight=getWindowManager().getDefaultDisplay().getHeight();
int yourbuttonheight= get_your_button_height;
lp.height = windowheight- yourbuttonheight;
lp.addRule(RelativeLayout.ABOVE, R.id.btnEmailLogs);
listView.setLayoutParams(lp);
一切顺利。