如何调整一个ListView在加入新行?(How to resize a ListView when

2019-09-19 06:33发布

所以我有这样的:

...<!--Stuff above-->
<ListView 
     android:id="@+id/reminders_list"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"></ListView>
...<!--More stuff below-->

我的问题是,当我尝试添加更多不工作,因为适配器不添加更多的意见,如果没有更多的空间行。 至少在这种情况下。 这意味着我需要动态地调整其大小。 问题是如何做到这一点? 如果除了调整大小事情是可能的,我宁愿做。 提前致谢。

Answer 1:

问题是在你android:layout_height="wrap_content"

设置高度WRAP_CONTENT将仅显示前三行其余部分将被忽略。 尽量做到为android:layout_height="fill_parent"

作为罗曼盖伊 (谷歌工程师workd上的UI工具包)说,他的职位

通过设置宽度wrap_contentyou告诉ListView控件是一样宽,最宽的孩子。 因此必须的ListView衡量其项目,并得到它必须调用getView()上的适配器的项目。 这可能取决于布局的推移,父布局的行为等数发生几次

所以,如果你设置你的ListView的布局宽度或布局高度WRAP_CONTENT ListView控件将尝试以测量连接到它的每一个观点 - 这绝对不是你想要的。

请记住:避免在任何时候都设置列表视图或GridView的WRAP_CONTENT,详细内容见本谷歌I / O视频谈论的ListView的世界

动态地添加行到列表视图LINK_1

动态地添加行到列表视图LINK_2

动态地添加行到列表视图Link_3

动态地添加行到列表视图Link_4



Answer 2:

当将元素添加到列表适配器,需要调用其notifyDataSetChanged()成员函数来用于通知所有连接的观察者(如一个ListView),该数据已经改变,并且将导致它刷新。



文章来源: How to resize a ListView when new rows are added?