我使用权重将我的屏幕分为三部分。在其中一个我有一个列表视图,在另外两个我有图像浏览。但我的列表视图占据整个屏幕。有人可以从逻辑上解释我在这里做错了什么吗?修复ListView的宽度
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="2"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>
而且列表视图填充为
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[]{"first","second"});
listview = (ListView)this.findViewById(R.id.listView1);
listview.setAdapter(arrayAdapter);
}
设置你的列表视图来0dp的宽度,和所有的人包含这个问题的重量 – zgc7009 2014-10-03 19:53:29
只要我将我的listview的宽度设置为0dp。列表视图是不可见的。屏幕现在被正确地分成了几部分,但列表不可见, – yagnasri 2014-10-03 19:57:27
对不起,意思是你的listview容器,没有看懂它......但我的第二部分陈述是正确的:P只要你设置了一个重量,确保你的宽度为0.原因是因为如果您设置的实际尺寸不是0,则会测量该尺寸,然后重新测量以处理重量。这是低效率的,最好将它设置为0并让重量做它的事情 – zgc7009 2014-10-03 19:59:55