AppWidget 中的 GridView 视图回收

GridView View Recycling in AppWidget

我在 AppWidget 中使用 GridView,但我遇到了它的视图回收问题。据我所知,RemoteViewsFactory 没有任何方法可以处理回收视图,getView 方法只有一个索引,没有 convertView 可以使用。所以,当我的 GridView 回收一个视图时,它保留了与它最初出现的所有相同的数据,这是错误的。有什么方法可以禁用视图回收,或编辑回收视图以替换其数据?

起初我想 return 每个索引的不同视图类型,但 RemoteViewsFactory 也隐藏了它,所以我也不能那样做!

我想我明白了。当我创建将填充 GridView 使用的适配器的视图列表时,我只是在将数据放入其中之前清除所有视图。我不知道它为什么有效,但它似乎有效。

 RemoteViews view = new RemoteViews( _context.getPackageName(), R.id.base_view );
 view.removeAllViews( R.id.day_box );