我有两个清单。一个列表显示可用列表中的所有可用项目(lv_available_items)和仅第二个选定项目(lv_selected_items)。我还希望所选列表最多显示50%,为此我使用属性“layout_weight”。但是,如果选择的可用列表中只有一个项目,则不会在选定列表中完全显示。为什么呢?
查看AlertDialog:
<?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:orientation="vertical"
android:weightSum="1" >
<ListView
android:id="@+id/lv_selected_items"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.5"
android:background="@android:color/darker_gray">
</ListView>
<ListView
android:id="@+id/lv_available_items"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.5" >
</ListView>
</LinearLayout>
这两个列表的行:
<?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="wrap_content"
android:gravity="left|center_vertical"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right|center_vertical" >
<CheckBox
android:id="@+id/cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClickRow"/>
</LinearLayout>
</LinearLayout>
截图:
答案 0 :(得分:0)
尝试将height
中的0dp
更改为ListView
<?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:orientation="vertical"
android:weightSum="1" >
<ListView
android:id="@+id/lv_selected_items"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.5"
android:background="@android:color/darker_gray">
</ListView>
<ListView
android:id="@+id/lv_available_items"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.5" >
</ListView>
</LinearLayout>
答案 1 :(得分:0)
像这样管理listview的高度:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:layout_width="match_parent"
android:layout_height="250dp"
android:id="@+id/lv1"
android:scrollingCache="false"/>
<ListView
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/lv1"
android:scrollingCache="false"/>
答案 2 :(得分:-1)
你将根据你的不同模拟器设计xml。喜欢hdpi手机分辨率设计.xml文件根据他的视图,你可以从.xml文件中的图形视图中选择hpdi模拟器,然后为ldpi,xhdpi等设计不同的.xml 。它有点耗时,但却很有效。
然后在.java文件中使用显示度量标准类
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenWidthPX = metrics.widthPixels;
screenHeightPX = metrics.heightPixels;
densityDpi = metrics.densityDpi;
switch(metrics.denistyDpi)
{
case DisplayMetrics.Denisty_High:
R.id.high.xml; //pass xml id of high denisty
}
//类似地,另一个案例传递Denisty_low等等;