Можно ли поместить FragmentActivity внутрь контейнера фрагментов?

У меня есть действие Fragment, в котором находится список фрагментов. Активность фрагмента также имеет несколько текстовых представлений, которые суммируют данные в списке фрагментов.

  • FragmentActivity = макет, содержащий контейнер фрагментов, текстовые представления и кнопку.

  • ListFragment = находится внутри контейнера фрагментов FragmentActivity и представляет собой список данных

Это отлично работает как действие, но теперь я пытаюсь поместить всю партию в другой контейнер фрагментов, чтобы отобразить его на вкладке панели действий в другом действии. Я могу заставить его работать только с ListFragment (очевидно, это потому, что FragmentActivity не может войти внутрь контейнера фрагментов), но это означает, что сводные текстовые представления и кнопки отсутствуют, и они мне действительно нужны там тоже.

Я задавался вопросом, есть ли у кого-нибудь предложения о лучшем способе реализации этого? Некоторые мысли о решениях, которые у меня были:

  • Измените макет действия, содержащего вкладки, если эта конкретная вкладка нажата

  • Программно добавить текстовые представления и кнопку в контейнер фрагментов, если эта вкладка нажата

  • Добавьте еще один фрагмент в действие фрагмента, ниже фрагмента списка

В любом случае я в тупике, поэтому любая помощь очень ценится.


person wkdshot    schedule 06.04.2013    source источник
comment
самое простое (но уродливое) решение — использовать LocalActivityManager и создать Fragment, в котором будет размещаться ваш Activity. Вы можете найти пример того, как это сделать здесь просмотр карты внутри фрагмента с помощью viewpager"> stackoverflow.com/questions/12873213/   -  person Vladimir Mironov    schedule 06.04.2013


Ответы (1)


Создайте макет Fragment, напоминающий макет вашего FragmentActivity, и добавьте его вместо него. вы не можете добавить FragmentActivity как Fragment просто потому, что это не Fragment, а Activity, в который была добавлена ​​поддержка Fragments для более старых версий.

Поэтому вместо того, чтобы добавлять кнопку и TextViews непосредственно в макет FragmentActivity. Создайте Fragment с теми же компонентами и добавьте его в макет Activity.

Таким образом, вы могли бы повторно использовать этот набор компонентов в другом месте вашего приложения, если вам нужно, используя тот же Fragment.

person Emil Adz    schedule 06.04.2013
comment
Итак, в основном оставьте настройку такой, какая она есть, но измените фрагментную активность на фрагмент? - person wkdshot; 06.04.2013
comment
Оставьте FragmentActivity как есть, но переместите все его компоненты в отдельный новый фрагмент и вместо этого добавьте его. - person Emil Adz; 06.04.2013
comment
Понятно, логически это кажется отличной идеей. Как добавить новый фрагмент в активность? У него три вкладки, и я хочу, чтобы только одна из этих вкладок содержала текстовые представления/кнопку. - person wkdshot; 06.04.2013
comment
Вы можете проверить этот мой ответ: stackoverflow.com/questions/15359993/ fragment-remove-issue/, чтобы получить представление о том, как добавлять/удалять фрагменты с помощью FramgnetManager. - person Emil Adz; 06.04.2013
comment
Идеально! Большое спасибо. - person wkdshot; 06.04.2013