Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ViewModel没有';t为RecyclerView和Save ListState缓存数据不';行不通 我希望RecyclerView在设备旋转时保持其位置。_Java_Android_Android Recyclerview_Retrofit2_Android Architecture Components - Fatal编程技术网

Java ViewModel没有';t为RecyclerView和Save ListState缓存数据不';行不通 我希望RecyclerView在设备旋转时保持其位置。

Java ViewModel没有';t为RecyclerView和Save ListState缓存数据不';行不通 我希望RecyclerView在设备旋转时保持其位置。,java,android,android-recyclerview,retrofit2,android-architecture-components,Java,Android,Android Recyclerview,Retrofit2,Android Architecture Components,我有4个类(2个活动和2个视图模型),它们被称为。加上,它扩展了。所有带有FavoriteAvtivity和FavoriteViewModel的功能都非常好。同时,其他两个的实现方式相同,但当我旋转设备时,我的列表的滚动位置会重置,并且我已经尝试了在onSaveInstanceState()和onRestoreInstanceState()中保存列表状态的所有方法 下面是我在GitHub上的应用程序repo:我发现了问题的原因,即为什么只有在实现相同的情况下,MainActivity才会发生这种

我有4个类(2个活动和2个视图模型),它们被称为。加上,它扩展了。所有带有FavoriteAvtivity和FavoriteViewModel的功能都非常好。同时,其他两个的实现方式相同,但当我旋转设备时,我的列表的滚动位置会重置,并且我已经尝试了在onSaveInstanceState()和onRestoreInstanceState()中保存列表状态的所有方法


下面是我在GitHub上的应用程序repo:

我发现了问题的原因,即为什么只有在实现相同的情况下,MainActivity才会发生这种情况。问题在于您的布局电影列表项目,您必须指定恒定高度,否则将重新测量布局并在设备上向上滚动列表。要防止出现这种情况,请使用下面修改的布局

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/iv_movie_thumbnail"
       android:layout_width="184dp"
       android:layout_height="180dp" // don't use wrap_content, can use any height you want but make it that fix
       android:contentDescription="@string/movie_thumbnail"/>


我发现了这个问题的原因,为什么它只发生在MainActivity上,即使实现是相同的。问题在于您的布局电影列表项目,您必须指定恒定高度,否则将重新测量布局并在设备上向上滚动列表。要防止出现这种情况,请使用下面修改的布局

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/iv_movie_thumbnail"
       android:layout_width="184dp"
       android:layout_height="180dp" // don't use wrap_content, can use any height you want but make it that fix
       android:contentDescription="@string/movie_thumbnail"/>


生成失败无法获取未知属性“MyMovieDbApiKey”,您可以提供任何虚拟密钥以使其正确生成。您说过FavoriteAvTivity和FavoriteAvViewModel工作得非常好,对我来说FavoriteAvTivity为空。您必须喜欢一些电影,然后电影将在那里放映,我没有提供活动为空时的布局。抱歉误解。@KrishnaSharma对你有用吗?不,没有发现任何错误,没有找到根本原因。今天将再次查看,同时如果您找到原因,请删除评论。生成失败无法获取未知属性“MyMovieDbApiKey”,您可以提供任何虚拟密钥以使其正确生成。您说过FavoriteAvActivity和FavoriteViewModel工作得非常好,对我来说,FavoriteAvActivity是空白的。你必须喜欢一些电影,然后电影才会在那里放映,我没有提供活动空白时的布局。抱歉误解。@KrishnaSharma对你有用吗?不,没有发现任何错误,没有找到根本原因。我今天会再看一次,同时如果你找到原因,请发表评论。Yass,它确实有效。非常感谢你。老实说,这只虫子快把我逼疯了。@JihadNaji很高兴帮助你!非常感谢。亚斯,它确实起作用了。非常感谢你。老实说,这只虫子快把我逼疯了。@JihadNaji很高兴帮助你!非常感谢。