Замена определенного фрагмента с помощью транзакции фрагмента - PullRequest
0 голосов
/ 03 октября 2019

В Android я добавил несколько фрагментов в Linear Layout, используя Fragment Transaction. Есть ли какой-либо конкретный способ, которым можно заменить определенный фрагмент в линейном макете, а не все из них?

Мы можем удалить любой фрагмент, используя сам фрагмент, но мы можем заменить только конкретный фрагмент наИдентификатор контейнера, а не сам фрагмент?

fragmentTransaction.replace(R.id.linearlayout, fragment); заменяет весь линейный макет одним фрагментом, а не конкретным, который я пытаюсь заменить.

Замена фрагмента вКонтейнер по тегу также не влияет на приведенное выше утверждение.

fragmentTransaction.addToBackStack(null); не удаляет конкретный фрагмент, который я пытаюсь заменить.

Так же имеет место и случай, когда я пыталсязамените R.id.linearlayout идентификатором корневого представления файла макета фрагмента.

Я попытался добавить все фрагменты в линейном макете в начале и отделить фрагменты, которые не должны отображаться в начале. Я могу отсоединить ненужные фрагменты и прикрепить необходимые фрагменты во время выполнения, но новые присоединенные фрагменты просто добавляются в конце линейного макета, но не в той конкретной позиции, на которую я пытаюсь заменить.

Есть лилюбой способ прикрепить новые фрагменты в Linear Layout в определенной позиции? Можно отсоединить все существующие фрагменты от линейной компоновки и прикрепить все необходимые фрагменты во время выполнения для простой замены одного конкретного фрагмента в данной позиции, но это занимает целое O (n) время.

Является ли этоможно сделать это лучше всего за O (1) раз?

...