如何在ViewModel中保存图像以处理方向更改?

问题描述 投票:1回答:1

我的活动包含一个图像视图和一个按钮,当单击按钮时,图像视图内的图像被更改(工作正常)。

但是当屏幕方向改变时,图像视图内的图像将丢失(因为活动被重新创建)。

我在一些帖子中读到,与onSaveInstanceState相比,ViewModel能够在方向上存活,并且可以存储大量数据(位图)。

还有许多其他选项可以检索相同的图像,但我想使用ViewModel来获取相同的图像,而不会受到方向更改的影响。

那么,如何使用ViewModel获得相同的图像?

谢谢。

android viewmodel
1个回答
0
投票

您的ViewModel应该有一个方法changeImage,它可以更改ViewModel的内部状态。您必须以某种方式表明有关此更改的活动。为此目的,最好使用val imageId = MutableLiveData<Int>()

changeImage改变了这个值。在“活动”中,您可以在更改imageId时订阅更改并应用新图像。

© www.soinside.com 2019 - 2024. All rights reserved.