更新Recycler视图并为屏幕旋转创建可分区(这里最好的做法是什么?)

我一直在努力学习Kotlin两个月。 我在Kotlin做了一个Reddit应用程序,在Recycler View Grid Layout显示缩略图

将我的情况情景化

MainActivityapiCall方法中,我调用RedditAPI ,在其中使用RedditAPI进行网络调用,并根据ResultValue object class返回Observable然后,我在MainActivity检索对象,并将其显示在Recycler View ,这很有效。

但是,当我实现无限滚动,并有新的对象生成每次向下滚动时,我不得不将所有值添加到一个mutable list cumulativeValue ,更改我的适配器的结构,只是调用adapter.notifydatasetchange()滚动,也工作出来罚款。

 private val cumulativeValues = mutableListOf() 

然后在onscrolllistener

 redditAPI.callParameters(location, page, address.queryLimit, afterValue) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( { result -> cumulativeValues.addAll(result.data.children.toMutableList()) 

我的代码工作,但我想实现屏幕旋转,现在我不知道我是否可以做到这一点parcelables,因为我把所有从网络调用检索到的值添加到一个可变的列表

我使用kotlin插件来实现parcelable类的另一个类, 这里有另一个类的RedditChildrenDetails作为参数,我也为这个类实现了parcelable(在同一个链接中)。

class RedditChildrenResponse(val data: RedditChildrenDetails) : Parcelable { ...

 class RedditChildrenDetails( val url: String, val title: String, val thumbnail: String, val permalink: String, val subreddit: String ) : Parcelable { ... 

现在我可以parcelable这两个类,但所有我的值被存储在一个可变的列表cumulativeValues ,我在MainActivity生成,我不明白我怎么可以连接到我所做的可变列表值。

我的问题是:有没有更好的方式将数据添加到Recycler View而不是将所有内容都添加到mutable list这样我可以更轻松地处理屏幕旋转? 我应该使用parcelables保存实例状态吗? 我所有的值都在一个可变的列表中,如果我可以将它存储在一个包中,但是不会有一个putMutableList(),我该怎么做?