【问题标题】:How to redraw views in ListView如何在 ListView 中重绘视图
【发布时间】:2013-01-07 21:30:38
【问题描述】:

我在片段中有一个 listView。列表视图中视图的某些文本部分是从适配器中的 Web 下载的。当我从另一个片段更改此文本部分时,我希望第一个片段重绘它的视图。

我试过了:

myListView.invalidate();
myListView.invalidateViews();
myListView.refreshDrawableState();
adapter.notifyDataSetChanged();
adapter.updateComments();

UpdateComments 是我自己的功能。我在 onScroll 中保存指向当前显示视图的指针,并要求每个视图更新请求的视图,但没有任何反应。

如果我向下滚动然后向上滚动并使用适配器的 getView 方法重绘我的视图,则会显示新文本。

如何在不滚动的情况下更新视图?

【问题讨论】:

  • 你可能想使用 asynctask 并查看this

标签: android android-listview android-fragments


【解决方案1】:

更新后在列表中再次使用 setAdapter 或 setListAdapter。

【讨论】:

  • 我不想重新加载所有数据。
【解决方案2】:

可以正常使用

adapter.notifyDataSetInvalidated();

但它会滚动到列表视图的顶部,所以我然后使用

feed.setSelection(adapter.lastPosition);

我在listview的onScroll方法中获取lastPosition。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多