我正在尝试在ListView
内的Activity
中加入Dialog
。该对话框主要用于搜索蓝牙设备,因此我需要两个Button
,一个TextView
和一个ListView
。这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="20dp">
<TextView
android:text="Bluetooth List"
android:paddingTop="15dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
</TextView>
<ListView android:id="@+id/bluetoothPanel_lvBluetooth"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_margin="10dip"
android:drawSelectorOnTop="false">
</ListView>
<LinearLayout
android:orientation="horizontal"
android:paddingLeft="4.0dip"
android:paddingTop="5.0dip"
android:paddingRight="4.0dip"
android:paddingBottom="1.0dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/bluetoothPanel_btnSearch"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:text="Search"
android:layout_weight="1.0" />
<Button
android:id="@+id/bluetoothPanel_btnCancel"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:text="Cancel"
android:layout_weight="1.0" />
</LinearLayout>
</LinearLayout>
一开始,ArrayAdapter
内的ListView
为空,我动态添加元素。
问题是,我想为ListView
设置固定大小,以便在动态添加元素时不会改变其大小(显示蓝牙设备列表)。你能帮我修一下我的XML吗?
修改
我不是在谈论数组大小。我在谈论listview本身(视图),列表视图的高度。
答案 0 :(得分:0)
为列表设置自定义ListAdapter并覆盖getCount()
方法,使其始终返回固定大小。
示例:http://jnastase.alner.net/archive/2010/12/19/custom-android-listadapter.aspx
答案 1 :(得分:0)
我想您正在询问如何为动态更改的ListView保留固定大小的空间。在类似的情况下,我将ListView包装在LinearLayout中,如下所示。请注意,这是ListView本身的xml,而不是单元格内容。此示例中的固定高度为100dip x 200dip。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background_image"
android:layout_width="100dip"
android:layout_height="200dip">
<ListView android:id="@+id/list_view"
android:layout_width="100dip"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
/>
</LinearLayout>
请注意,ListView的layout_width也设置为所需的固定宽度。我不知道为什么,但这似乎是必要的。
另请注意,背景图像或颜色是在LinearLayout上设置的,而不是在ListView上设置的。将ListView的cacheColorHint设置为透明使得ListView可以很好地播放。
如果你问别的东西(例如,修复可滚动高度而不管元素,这似乎是由@Stephen回答的),你可能想澄清这个问题。