Я использую в своем приложении Conductor framework .
Приложение в целом зафиксировано в состоянии портрет , но у меня 2 Controllers
, что используйте ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR
и реагируйте на изменения ориентации устройства
Controller
A - показывает сводку снятых изображений Controller
B - это взаимодействие с камерой
, поэтому при запуске A сразу запускается B и отображается сводная информация после съемки изображений.
A содержит RecyclerView
, который использует FlexboxLayoutManager
(когда я пытался заменить менеджер макета с простым LinearLayoutManager
ничего не изменилось)
У меня есть 3 потока, которые работают штраф:
- Устройство удерживается в Портрет -> A запущен -> B запущен -> изображения сняты -> B закрыто -> изображения Показано в A
- Устройство удерживается в Пейзаж - > A запущен -> B запущен - > изображения сняты -> B закрыт -> изображения показаны в A
- Устройство удерживается в Portrait -> A запущен -> B запущен -> ориентация устройства изменяется на альбомную -> снимки принимаются -> ориентация изменяется в Портрет -> B закрыто -> изображения Показано в A
Однако этот сценарий не выполняется:
Устройство удерживается в Portrait -> A запущено -> B запущено -> ориентация устройства изменяется на альбомную -> взяты изображения -> B закрыто -> изображения НЕ показаны в A
Во всех потоках Я вижу, что adapter
знает о новых элементах, а getItemViewType
, onCreateViewHolder
и onBindViewHolder
вызываются с правильными позициями
Поток, который терпит неудачу, на самом деле тот, который кажется наиболее естественным для меня как пользователя: (
- Никто не знает, что происходит?
- Можете ли вы предложить дополнительные направления для расследования?
ОБНОВЛЕНИЕ:
- The представление рециркулятора было определено с помощью
android:layout_height="wrap_content"
- Изменение на
android:layout_height="match_parent"
при работе с LinearLayoutManager
works (выглядит некрасиво) - Смена значения обратно на
FlexboxLayoutManager
завершает работу всех потоков, которые работали до
Итак, я смотрю на FlexboxLayoutManager
, чтобы посмотреть, смогу ли я легко это исправить - я не думаю, что в моем потоке действительно необходим вид переработчика