我有一个GridView
附加BaseAdapter
。 GridView
本身包含在ViewFlipper
中。
我通过调用GridView
上的setDisplayedChild()
方法显示ViewFlipper
,然后更新BaseAdapter
检查的数据集,最后调用notifyDataSetChanged()
在适配器上。
它通常不会使用新内容刷新GridView
,或者有时会随机刷新它,因此看起来不可预测。
我注意到当我将设备旋转到新方向时,视图会自行刷新并正确加载适配器数据。当设备进入待机状态并且解锁时,同样的情况发生了,视图会被新数据神奇地刷新。
我试图调用notifyDataSetChanged()
中的UIThread
,我试图通过调用forceLayout()
,requestLayout()
,invalidate()
,{{来强制查看视图1}}等等,但没有任何变化。
即使我从按钮调用invalidateChildren()
也没有任何反应,只需旋转设备或锁定并解锁它就会刷新视图。
我正在开发使用Android 3.2的华硕平板电脑。
有人可以帮助我或给我一些提示吗?
非常感谢!
答案 0 :(得分:0)
如果您的View不是通过使用上述所有内容进行刷新,那么您必须重新绘制网格视图,或者在设置网格适配器时可以执行一项操作,将这些行放在Resume方法上,并在进行更改后调用onResume()你的数据。