Объяснение как добавить фрагменты (или что это) программно
Вопрос в следующем: Увидел уже не один раз, как например в записных книжках, после сохранения какого-то значения на главном экране появляется фрагмент с этим значением, и при нажатии на него его можно форматировать. Примеры приведу в изображениях (Приложение Google Keep). Это фрагменты или что это?
Ответы (1 шт):
Ну если взять Google Keep то там обычный RecyclerView с StaggeredGridLayoutManager. При клике на любой элемент открывается новое activity/fragment. Внутри это редактируется, а при возврате в RecyclerView просто подгружаются обновленные данные.
Как вернуть обновленные данные? Могу дать пару вариантов:
При открытии элемента для редактирования сохранять данные в репозиторий, а при возврате на предыдущий экран со списком просто заново оттуда из тянуть. Пожалуй это самый простой и правильный путь.
Вы так же можете создать
ViewModelкоторая будет жить все время пока жив экран списка и экран деталей заметки. И в ней хранить данные. Этот способ работает на основе паттернаObserverпоэтому данные будут сами обновляться по мере их изменения.Если открывать по клику на элемент
activity(fragmentтоже можно, но там немного проблемнее) то можно использовать методonActivityResult()и в нем возвращать измененный результат и обновлять список. Но я бы не стал использовать этот способ.
Можно придумать и другие пути, но это уже зависит от конкретной реализации.
UPD:
Конечно никто не мешает вам создать подобный экран на фрагментах. Вы можете создать грубо говоря ScrollView в который просто добавлять новые фрагменты. Но нужно ли это здесь? Думаю нет. Хотя есть ситуации когда это будет неплохим решением. Например если у вас будет список списков то порой внутренние списки обрабатывать легче во фрагменте чем в том же RecyclerView. Или если в каждом элементе списка хранится сложная логика, тогда вы так же можете использовать список на основе фрагментов и ScrollView

