我使用權重將我的屏幕分爲三部分。在其中一個我有一個列表視圖,在另外兩個我有圖像瀏覽。但我的列表視圖佔據整個屏幕。有人可以從邏輯上解釋我在這裏做錯了什麼嗎?修復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