2013-10-08 49 views
0

我有两个列表。一个列表显示可用列表中的所有可用项目(lv_available_items)和仅次要项目(lv_selected_items)。我还希望该选定列表最多占用显示的50%,因此我使用属性“layout_weight”。但是,如果只选择了可用列表中的一个项目,则这不会在选定列表中完全显示。为什么?Android如何在一个AlertDialog中一个接一个地显示两个ListViews

信息查看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> 

截图:

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

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

回答

0

试着改变你的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> 
+0

我试过了,但同样的问题。 – CroCop

0

height0dp管理的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"/> 

+0

是的,我可以做到这一点,但我不想要一个固定的大小,为不同的设备。 – CroCop

+0

试试这些方法之一是设置高度wrap_content,另一个是设计自定义listview。 –

-1

你会根据您的不同emulators.Like设计XML hdpi手机分辨率设计.xml文件根据他的观点,您可以从.xml文件的图形视图中选择hpdi模拟器,然后为ldpi,xhdpi等设计不同的.xml。它是l ittle位费时,但有效的一种

然后使用显示度量类在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等;

+0

这个答案是完全不相关的问题。 –

相关问题