我正在研究android中的一个对话框,我打算为不同的手机分辨率制作非常灵活的对话框。因此,我在构建 xml 文件时使用了 layout_weight 属性。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/newGame_linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_weight="3"
android:orientation="horizontal" >
<ListView
android:id="@+id/newGame_InvitedPlayers"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@color/ListView_Background"
android:cacheColorHint="#00000000" >
</ListView>
<ListView
android:id="@+id/newGame_Plugins"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@color/ListView_Background"
android:cacheColorHint="#00000000" >
</ListView>
</LinearLayout>
<Button
android:id="@+id/newGame_sendInvite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Invite Players" />
<TextView
android:id="@+id/newGame_textViewOnlinePlayers"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Online Players:" />
<ListView
android:id="@+id/newGame_onlinePlayers"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="5dp"
android:layout_weight="2"
android:background="@color/ListView_Background"
android:cacheColorHint="#00000000" >
</ListView>
</LinearLayout>
这是它的外观:
事实上,它看起来像我想要的。
但是当我单击底部 Listview 中的项目时,将它们从底部 ListView 中删除并将它们添加到左上角 ListView,底部 Listview 的大小会减小,直到我删除最后一个项目并且它完全消失并且看起来像这样:
我希望它根本不改变大小。即使它是空的。
尽管 dp 是一个非常灵活的尺寸单位,但我不想在这种情况下使用它,顶部的两个 ListView 应该占据屏幕的 3/5,底部的一个占据剩余的 2/5,而 Button 和TextView 应该在两者之间占用尽可能少的空间。
我尝试将最后一个 Listviews 高度更改为 match_parent,它不会改变任何东西。当我单击项目时,列表视图仍然消失。