Итак, я пытаюсь выяснить, возможно ли это. Мне нужно загрузить два fragments
в два контейнера в том же activity
из одного выбранного tab
.несколько фрагментов из ONE ActionTab
Я нашел Android - Multiple fragments in ONE tab
, но никто не ответил на этот вопрос.
Итак, вот пример кода и то, что я пробовал.
слушатель
surveyTabListener = new TabListener<Load_Fragment>(this,
R.id.header_fragment_container, Load_Fragment.class);
onTabSelected
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (fragment == null) {
String fragmentName = fragmentClass.getName();
fragment = Fragment.instantiate(activity, fragmentName);
ft.add(fragmentContainer, fragment, fragmentName);
} else
ft.attach(fragment);
}
Теперь я пытался добавить второй listener
к inflate
2-й fragment
как это
surveyTabListener2 = new TabListener<Store_Fragment>(this,
R.id.store_fragment_container, Store_Fragment.class);
, и я также пытался использовать вторую if else
заявления в onTabSelected
как этот
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (fragment == null) {
String fragmentName = fragmentClass.getName();
fragment = Fragment.instantiate(activity, fragmentName);
ft.add(fragmentContainer, fragment, fragmentName);
} else
ft.attach(fragment);
if (fragment2 == null) {
String fragmentName2 = fragmentClass2.getName();
fragment2 = Fragment.instantiate(activity, fragmentName2);
ft.add(fragmentContainer2, fragment2, fragmentName2);
} else
ft.attach(fragment2);
}
Ни работа, я либо получить NPE (null pointer)
или абсолютно ничего не происходит, но я не получаю никаких ошибок.
Это похоже на то, что нужно делать довольно часто, но я не могу понять, как это понять.
Я не уверен, что понимаю вашу проблему. Когда вы говорите: «Мне нужно загрузить два фрагмента в два контейнера», вы имеете в виду, что каждый контейнер будет иметь два фрагмента или вы имеете в виду, что у вас будет два контейнера, каждый из которых имеет один фрагмент? – Squonk
@Squonk Мне нужно раздуть 2 отдельных контейнера по 1 фрагменту каждый (фрагменты индивидуальны, это не один и тот же фрагмент). Они должны накачаться одновременно, нажав 1 вкладку. Это макеты фрагментов по умолчанию, которые я хочу раздуть. Цель состоит в том, чтобы, если пользователь переходит из Tab «A» в Tab «B», два фрагмента будут разными, поэтому пользовательский интерфейс изменится. – IrishWhiskey
Вы не вызываете 'commit()' на свой 'FragmentTransaction'. Пример ... 'ft.add (fragmentContainer, фрагмент, имя_файла) .commit();' - попробуйте и посмотрите, что произойдет. – Squonk