所以我有这个:
...<!--Stuff above-->
<ListView
android:id="@+id/reminders_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
...<!--More stuff below-->
我的问题是当我尝试添加更多行时它不起作用,因为如果没有更多空间,适配器不会添加更多视图。至少在这种情况下。这意味着我需要动态调整大小。问题是如何做到这一点?如果除了调整大小之外的东西是可能的,我宁愿这样做。提前谢谢。
答案 0 :(得分:5)
问题在于您的android:layout_height="wrap_content"
设置高度为wrap_content将仅显示前三行,其余的将被忽略。尝试将其设为android:layout_height="fill_parent"
作为Romain Guy(Google工程师使用UI工具包)在帖子中说
通过将宽度设置为wrap_contenty,您可以告诉ListView与其最宽的子节点一样宽。因此,ListView必须测量其项目并获取必须在适配器上调用getView()的项目。这可能会发生几次,具体取决于布局传递的数量,父布局的行为等。
因此,如果将ListView的布局宽度或布局高度设置为wrap_content,ListView将尝试测量附加到它的每个视图 - 这绝对不是您想要的。
请记住:避免在任何时候为ListViews或GridViews设置wrap_content,有关详细信息,请参阅此Google I/O video,了解listview的世界
Dynamically Adding rows to List View Link_1
Dynamically Adding rows to List View Link_2
答案 1 :(得分:2)
向列表适配器添加元素时,需要调用其notifyDataSetChanged()
成员函数,通知任何附加的观察者(如ListView),数据已更改,并使其刷新。 / p>