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