Я пытаюсь сделать приложение, которое отображает большое количество текста и изображений в определенном макете, когда пользователь нажимает на соответствующий элемент списка. Поскольку мне нужны конкретные макеты .xml для отдельных «разделов», я хочу, чтобы только макет фрагмента изменился на соответствующую главу.Изменение фрагмента фрагмента динамически вместо замены фрагментов Android SDK
Googling говорит мне, что я могу сделать это с помощью фрагментов, но, насколько я понимаю, мне нужны отдельные классы фрагментов и .xml-макеты для каждой главы, которую я хочу реализовать. С 2 или 3 разделами, которые можно сделать, но с большим количеством глав, которые станут, как я думал, не проще просто сохранить два фрагмента (один со списком и один с текстом главы), но динамически изменить макет второй фрагмент, если пользователь нажимает на элемент в списке.
Можно ли это сделать с помощью некоторого кода, подобного этому (просто вслух)?
Int[] layouts = {
{R.layout.chapter1, R.layout.chapter2, R.layout.chapter3}
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
index = intent.getIntent("index", 0);
return inflater.inflate(layouts[index], container, false);
}
Или есть другой способ достичь этого?
Итак, как я понимаю, ваш метод setChapter должен быть помещен в списокFragment, а затем у меня будет метод onClick с чем-то вроде _setChapter (i) _ где i - это идентификатор элемента, на который я нажал listView. Это правильно? – Thijs93H
Нет. Предполагая, что ваш массив 'layouts' - это все главы для отображения. Это будет в любом фрагменте, отображающем макеты. Ваш ListView может получить фрагмент, вызвав метод getFragmentManager(). FindFragmentBy ___(); '. Затем он просто вызывает 'setChapter()' на возвращаемом фрагменте. – DeeV
Ах, я понимаю! – Thijs93H