У меня есть MainActivity в моем приложении для Android, где я показываю список элементов в RecyclerView.
У каждого элемента может быть несколько вложенных элементов, а также у вложенных элементов могут быть свои собственные дочерние элементы (например, дерево). Я хочу показать одну и ту же активность для основных и подпунктов, но со стрелкой назад на ActionBar.
Можно ли повторно использовать MainActivity?
Вы должны использовать фрагменты :)
Есть ли у фрагментов кнопка возврата?
не фрагменты, но мы можем установить значок панели действий, используя getActionBar (). setIcon (R.drawable.my_icon); Проверяя экземпляр фрагмента. Предположим, нам нужен backIcon на одном экране, а на следующем экране нам нужен другой значок, чтобы мы могли обрабатывать его с помощью фрагментов.
Да, можно повторно использовать MainActivity. Каждый раз, когда вы вызываете startActivity без специального launchMode или флагов, будет создан новый экземпляр MainActivity, который считается абсолютно новым.
да, вы можете сделать это с помощью фрагментов. Вместо того, чтобы показывать списки в MainActivity, возьмите контейнер фрагментов в MainActivity и создайте фрагменты, в которых вы можете показывать свои списки и подпункты в соответствии с вашими требованиями.
Проверяя экземпляр фрагмента в MainActivity, вы можете показывать и скрывать обратную стрелку панели действий.
Вы можете использовать фрагменты для выполнения ваших требований.
От этот ТАК ответ:
Fragments are more of a UI benefit in my opinion. It's convenient for the user sometimes to see two different views of two different classes on the same screen.
Подробнее о фрагментах читайте этот документ.
Я столкнулся с подобной проблемой при работе над приложением File Manager. Итак, что я сделал, так это создал стек FolderNavigator, который помог мне отслеживать текущую позицию пользователей, используя которую я показал вверху хлебные крошки. И я подключил свой фрагмент к этому навигатору, так что как только просмотр стека изменится, моя папка получит уведомление и загрузит данные просмотра стека. Когда я нажимаю назад, я просто выталкиваю стек, и, поскольку мой фрагмент уже связан с просмотром стека, он покажет соответствующие данные.
это возможно с помощью deque