现在已经挣扎了一段时间。我有一个由各种LinearLayouts组成的布局XML,具有单独的权重。最终结果看起来像这样..
不介意颜色,只是为了看到断点。无论如何,在终端/原点等下面,LinearLayout是一个使用自定义适配器填充的ListView。数据加载正常,但然后listView“突破”LinearLayout,占据了大部分页面
(不介意颜色,只是为了看到断点......)
即。它流过上方和下方的视图。
我的XML如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="HardcodedText" >
<RelativeLayout
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:background="#FF0000"
android:gravity="right" >
<Button
android:id="@+id/update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:onClick="getFlightInfo"
android:text="Refresh" />
</RelativeLayout>
<LinearLayout
android:id="@+id/table_header"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="0.4"
android:background="#FFFFFF"
android:weightSum="1" >
<TextView
android:id="@+id/header_cell1"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="@string/cell_1_weight"
android:gravity="center_vertical"
android:paddingLeft="5dp"
android:paddingRight="12dp"
android:text="@string/table_header_terminal"
android:textSize="11dp" />
<TextView
android:id="@+id/header_cell2"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="@string/cell_2_weight"
android:gravity="center_vertical"
android:paddingRight="12dp"
android:text="@string/table_header_origin"
android:textSize="11dp" />
<TextView
android:id="@+id/header_cell3"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="@string/cell_3_weight"
android:gravity="center_vertical"
android:paddingRight="12dp"
android:text="@string/table_header_flight"
android:textSize="11dp" />
<TextView
android:id="@+id/header_cell4"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="@string/cell_4_weight"
android:gravity="center_vertical"
android:paddingRight="12dp"
android:text="@string/table_header_scheduled"
android:textSize="11dp" />
<TextView
android:id="@+id/header_cell5"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="@string/cell_5_weight"
android:gravity="center_vertical"
android:paddingRight="12dp"
android:text="@string/table_header_status"
android:textSize="11dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/table_list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="3"
android:background="#FFFFFF"
android:orientation="vertical" >
<ListView
android:id="@+id/list_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
<LinearLayout
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#00FF00" />
</LinearLayout>
我可能会遗漏一些明显的东西,但对于我的生活,我无法看到它。有人可以帮忙吗?
万分感谢..
答案 0 :(得分:2)
这是因为你保留了LinearLayout的高度(一个包装列表视图)“wrap_content”。确定它的大小可以解决你的问题。
然后使listview的高度为“fill_parent”。
编辑:
尝试这种方式:
...
<ListView
android:id="@+id/list_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
在上面的两个布局中,你使用0.2和0.4作为权重,但在较低的两个布局中,你用户3和1 ...尝试以前的方式,看看,如果它可以帮助你。也尝试制作LinearLayout的高度(一个包装列表视图)到0dip。
答案 1 :(得分:2)
也许已经晚了,但我可以帮助别人。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ff0000">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="Content 1" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#00ff00">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="Content 2" />
</LinearLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/linearLayout2"
android:layout_below="@id/linearLayout1"
android:background="#00f0f0"></ListView>
答案 2 :(得分:0)
好的..在咨询this post之后我想出了一个修复
希望这会有所帮助。
答案 3 :(得分:0)
id/filter
的重量。 ListView
的权重为1,身高fill_parent
。 您错过了另一件事,就是在根目录中设置weightSum=sum_of all_child_weight
。这应该可以解决问题。