Лучший подход для установки ImageView в ViewModel - PullRequest
0 голосов
/ 25 апреля 2020

FragmentA отображает изображение (ImageView), хранящееся в локальной файловой системе. FragmentB берет это изображение и заменяет его. Код структурирован с использованием общей ViewModel. Учитывая этот сценарий, каков наилучший подход для передачи изображения, которое будет отображаться во FragmentB?

Моя первоначальная попытка состояла в том, чтобы сохранить MutableLiveData в ViewModel, которая отображает его, возвращая BitmapDrawable, в файле макета xml затем ImageView получить доступ к нему. Я совершенно новичок ie в отношении фрагментов и моделей представления, с этой мыслью я попытался инициализировать ViewModel, загрузив stati c ImageView из раздутого макета, создать из него BitmapDrawable и инициализировать поле ViewModel с этим. Когда я запускаю приложение, кажется, что когда оно пытается загрузить ImageView из макета, оно получает нулевой объект и выдает

java.lang.IllegalStateException: binding.userImage.drawable must not be null

Изображение загружается с

var img: Bitmap = binding.userImage.drawable.toBitmap()

который передает

binding = DataBindingUtil.inflate(inflater, R.layout.fragment_show_profile, container, false)

, инициализированный в onCreateView фрагмента A

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...