Динамическое добавление нескольких фрагментов - PullRequest
1 голос
/ 27 октября 2011

Я имею в виду приложение, в котором я смогу программно отобразить некоторые фрагменты в соответствии с метаданными, которые я где-то сохранил.Насколько мне известно, я смог выяснить, что каждый фрагмент находится в соответствующем FrameLayout, или, особенно, когда я создаю действие с одним FrameLayout, я могу хранить там только один фрагмент за раз, независимо от того, какой это вид,Проблема, однако, заключается в ситуации, когда мои метаданные объявляют, что я должен поместить 3 фрагмента в свою деятельность, в то время как есть только один FrameLayout.

Я вижу два возможных решения:

1) созданиенесколько FrameLayout и на последнем этапе, некоторые из них будут использоваться или нет 2) каким-то образом объединить несколько фрагментов, чтобы вписаться в один доступный FrameLayout

Мне не нравится решение 1), и я не знаю, как достичь2).Как вы это видите?Можно ли динамически добавлять несколько фрагментов в действие с одним макетом кадра?

1 Ответ

1 голос
/ 29 февраля 2012

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

  1. Все ли фрагменты одного размера?
  2. Должны ли фрагменты быть размещены в определенном порядке?

Сначала создайте пустой родительский макет (класс Layout оставлен на ваш выбор, кроме FrameLayout). Затем определите свое дочернее представление для родительского макета, используя отдельный XML-файл, который должен содержать заполнитель фрагмента. С помощью инфлятора накачайте свое дочернее представление и назначьте фрагмент раздутому макету и, в конце концов, добавьте его в родительский макет, таким образом вы можете активировать то, что ищете. Просто помните, когда вы раздуваете свой макет, упоминайте его размер, чтобы вы добились желаемого макета.

...