【问题标题】:How to update listview item cell?如何更新列表视图项目单元格?
【发布时间】:2012-12-23 17:54:38
【问题描述】:

我在更新 android listview 项目单元格时遇到问题。

listview_item.xml 是一个普通的列表视图项,只是它在底部有一个隐藏面板。所以 listview_item.xml 的最后一部分是 LinearLayout,里面有另一个按钮。这整个布局设置为消失,直到用户单击列表项中的可见按钮。这会将隐藏的 LinearLayout 设置为可见并显示。到目前为止,一切都很好。现在隐藏的 LinearLayout 已打开,并且正在显示,我想将其关闭。因此,我单击了这个先前隐藏的线性布局内的按钮,并将可见性设置为 GONE,这是其先前的状态。结果是什么都没有立即发生。面板保持打开状态,直到我将其滚动出站点并再次返回。然后它不再显示。对不起,我没有要发布的代码,但这就是全部情况。我只是无法当场刷新列表项。使用可见按钮打开工作正常。但是从面板中的按钮关闭同一个面板似乎什么都不做。我已经尝试从适配器内部运行 dataSetChanged() 等,但只有滚动到视图中才会关闭面板。有谁知道为什么关闭与打开不同?为什么我会立即对设置为可见而不是其他方式做出反应。似乎唯一的区别是我从先前隐藏的面板上的按钮触发事件。抱歉,它罗嗦了,但目前我面前没有代码。

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    我认为这里没有人可以在没有代码的情况下帮助您。 notifyDataSetChaged() 是必须帮助你的方法,但如果不是 - 很明显你做错了什么。您必须保存与此列表项对象(或模型)关联的每个列表项元素的可见性状态。再次检查您的代码并进行调试。

    【讨论】:

    • 还有view.requestLayout()
    • 嗯,这是完全不同的事情。顺便说一句,为ListView 或其任何孩子调用requestLayout() 是错误的方式。实际上,ListView 已经在后台重新绘制了与 View 相关的所有内容,所以我的观点没有改变:检查你的代码。
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多