给定 aListActivity
和ListView
根据用户输入更改项目的要求,进行更改以使更改在滚动后继续存在的方法是什么?
当前,应用程序使用来自数据库的 aResourceCursorAdapter
填充。Cursor
当用户长按一个项目时,该项目上的和ImageView
之间切换。此外,管理支持视图状态的数据库中的标志。View.VISIBLE
View.GONE
但是,当该项目从屏幕上滚出,然后又回到屏幕上时,该项目会显示为没有最近的更改。换句话说,如果我通过ImageView
长按使可见,它显示得很好。但是当我滚动离开该项目,然后滚动回它时,它不再可见。
我目前的解决方案(我认为是错误的)是保存滚动位置,从数据库刷新整个列表,然后再次定位到正确的位置。
我想有一些方法可以告诉一些 Androidy 东西将新的可见性状态放入它的缓存中,但我找不到它。我试过setScrollingCacheEnabled(false)
了,其他一些缓存是假的,但这些似乎都没有什么不同。我试图弄清楚如何让 Android 意识到它是“脏的”,但我发现的只是查询它是否isDirty()
。我也试过ResourceCursorAdapter.notifyDataSetChanged()
了,这使得setVisibility()
通话对可见性无效。我也在各个地方尝试过invalidate()
。invalidateViews()
如果以正确的顺序(在可见性改变之前或之后)应用于正确的对象,它可能是其中之一。