Схема моего приложения для Android-планшета состоит из списка элементов и подробного представления. Когда выбран элемент списка, соответствующий контент отображается в представлении деталей.Как вырезать фрагменты на backstack, которые соответствуют их тегам фрагмента?
+--------+-------------+
| Item 1 | |
+--------+ Item |
| Item 2 | details |
+--------+ |
| Item 3 | |
+--------+-------------+
Подробности просмотра является Fragment
который программно раздували в FrameLayout
заполнитель:
<FrameLayout
android:id="@+id/detail_fragment_placeholder"
android:layout_width="match_parent"
android:layout_height="match_parent">
Вот является Fragment
операции:
getSupportFragmentManager()
.beginTransaction()
.replace(containerViewId, fragment, fragmentTag)
.addToBackStack(backStackStateName)
.commit();
Несколько экземпляров [Dx]
из DetailsFragment
добавлены до упора, когда пользователь выбирает один элемент за другим.
[D3]
[D2] [D2]
[D1] -> [D1] -> [D1]
Таким образом, пользователь должен нажать кнопку НАЗАД несколько раз, чтобы совать экземпляры из backstack опустошить детали просмотра.
Как я могу заменить существующий экземпляр [Dx]
из DetailsFragment
на backstack когда fragmentTag
существующего fragment
соответствует fragmentTag
нового fragment
?
[D1] -> [D2] -> [D3]
Вы хотите заменить только верхний фрагмент, если он имеет то же самое тег или любой фрагмент с тем же тегом в стеке? – Michael
@Michael Если есть группа фрагментов с тем же тегом aka. тот же тип поверх стека Я хочу уменьшить/заменить их одним пропущенным фрагментом. – JJD
Нет простого способа добиться этого. Проверьте этот ответ http://stackoverflow.com/a/22125826/1320616 –