На этой странице документации для Android в разделе "Совместное использование данных между фрагментами" описано, как решить проблему совместного использования выбранного элемента в потоке основных деталей с помощью ViewModel
.Однако решение работает только на больших устройствах, где вы помещаете оба фрагмента в один Activity
.На небольших устройствах общий подход заключается в том, чтобы фрагмент детализации содержался в своем собственном DetailActivity
, и тогда два фрагмента имели бы разные экземпляры ViewModel
, поэтому подход потерпел бы неудачу.
Итак, мой вопрос: как вы обобщаете это для всех размеров устройства?
У меня есть одна идея, я мог бы поместить два фрагмента в одно и то же действие даже на небольших устройствах.Положите это идет вразрез с каждой реализацией основного потока деталей, который я когда-либо видел.Можно было бы реализовать навигационную установку.И тогда DetailActivity
будет использоваться только для отображения отдельных предметов в качестве реакции на намерения.Он может создать экземпляр SharedViewModel
и установить переданный элемент как selectedItem
.Затем фрагмент сведений может получить экземпляр SharedViewModel
таким же образом, и ему не нужно различать два родительских действия.
Этот вопрос похож, но люди в комментариях жаловались, что он широкий и неясный