0

我有两个清单。一个列表显示可用列表中的所有可用项目 (lv_available_items),第二个仅显示选定项目 (lv_selected_items)。我还希望所选列表占据最多 50% 的显示,为此我使用属性“layout_weight”。但是,如果它只是从可用列表中选择的一项,则它不会完全显示在所选列表中。为什么?

警报对话框的视图:

<?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>

截图:

http://windows.valloc.de/msl1.png

http://windows.valloc.de/msl2.png

4

3 回答 3

0

像这样管理列表视图的高度:

<?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"/>

于 2013-10-10T12:16:19.830 回答
0

尝试在您的 s中更改您的heightto0dpListView

<?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>
于 2013-10-08T23:56:55.560 回答
-1

你将根据你不同的模拟器设计xml。就像hdpi手机分辨率设计.xml文件根据他的观点你可以从.xml文件的图形视图中选择hpdi模拟器,然后为ldpi、xhdpi等设计不同的.xml。它是有点费时但有效的

然后在 .java 文件中使用 Display metric 类

  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 等等;

于 2013-10-16T07:30:29.983 回答