android - AppWidget中的GridView视图回收
问题描述
我在 AppWidget 中使用 GridView,但我的视图回收存在问题。 据我所知, RemoteViewsFactory没有任何方法可以处理回收的视图,该getView
方法只有一个索引,没有可使用的 convertView。因此,当我的 GridView 回收视图时,它会保留与原始视图相同的所有数据,这是错误的。有什么方法可以禁用视图回收,或编辑回收的视图以替换其数据?
起初我想为每个索引返回一个不同的视图类型,但 RemoteViewsFactory 也隐藏了它,所以我也不能这样做!
解决方案
我想我想通了。当我创建将填充 GridView 使用的适配器的视图列表时,我只是在将数据放入其中之前清除所有视图。我不知道它为什么会起作用,但似乎可以。
RemoteViews view = new RemoteViews( _context.getPackageName(), R.id.base_view );
view.removeAllViews( R.id.day_box );