我希望屏幕的上半部分是图形,底部部分是列表视图。这两个部分应该占据屏幕的一半。
通过我现在的设置,只有列表视图中有10个或更多项目才有效。如果有更少,列表视图将占用不到一半的屏幕。如果列表中有一个项目,则它占用的列表项目的高度甚至更低。
基于ANDROID : split the screen in 2 equals parts with 2 listviews 的解决方案,这就是我现在所拥有的:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="0.5"
android:id="@+id/graph_container"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="0.5"
android:orientation="vertical">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"/>
</LinearLayout>
</LinearLayout>
我动态添加图表:
((LinearLayout) findViewById(R.id.graph_container))
.addView(chart, 0,
new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
有谁知道我应该怎么做?
更新
因此,关键部分是将layout_height更改为math_parent。删除列表视图的父线性布局是可选的,但绝对更清晰。
答案 0 :(得分:3)
删除listView所在的容器,将权重更改为1并将主容器的高度设置为match_parent。这是一个例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/graph_container"
android:orientation="vertical">
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:fillViewport="true"
android:drawSelectorOnTop="false" >
</ListView>
答案 1 :(得分:1)
您只需将第一个LinearLayout高度更改为match_parent
答案 2 :(得分:1)
尝试将重量值用作数字1:1 fox示例。
答案 3 :(得分:1)
设置父级LinearLayout的android:weightSum =“1”和android:layout_height =“match_parent”应该有效。