Я изучаю фрагменты и «Поддержка нескольких устройств». В зависимости от типа устройства, ориентации и размера, можно определить несколько макетов с использованием фрагментов и повторного использования письменного кода. Во время разработки из приложения, я записал свой желаемый интерфейс для планшетных устройств, как описано в следующем скриншоте:UI Макет, фрагменты и различный контент
Активность содержит два фрагмента и отображает меню TAB навигации. Каждая навигация в меню TAB содержит различные пункты меню (listview). При нажатии на элемент меню на фрагменте 1 мне нужно обновить фрагмент номер 2. Фрагмент 2 состоит из презентации и, ниже, списка или другой презентации. пункт Каждое меню могло иметь различное расположение:
- 1-презентации, изображения, другой презентации
- 2-Нет презентации, ListView
- 3-презентация, ListView
- 4-т.
Изучаемые примеры (образцы), снабженные google-sdk, фрагмент 2 всегда имеют одинаковый макет. Как можно описать фрагмент 2 для загрузки разного макета в зависимости от выбранного пункта меню?
Мой ответ: Мне нужен класс фрагмента для каждого разного макета. Когда пользователь нажимает на элемент фрагмента 1, менеджер фрагментов должен заменить и зафиксировать правильный фрагмент. Правильно ли этот ответ?
Вся логика фрагмента будет включена в мою деятельность, заменив правильный фрагмент в зависимости от выбранного элемента (позиции и категории); простой пример:
@Override
public void onItemSelected(int category, int position) {
if (position==0){
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frag, new FirstActionFragment(), "FirstMenuClicked");
ft.commit();
}
else {
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frag, new SecondActionFragment(), "secondMenuClicked");
ft.commit();
}
}
Является ли моя идея макета более эффективной? Должен ли я что-то изменить на моем дизайне, чтобы правильно реализовать фрагментацию?
Обратите внимание, что [ссылка только ответы] (http://meta.stackoverflow.com/tags/link-only-answers/info) не рекомендуется , SO ответы должны быть конечной точкой поиска решения (а также еще одной остановки ссылок, которые со временем становятся устаревшими). Пожалуйста, подумайте о добавлении отдельного резюме здесь, сохранив ссылку в качестве ссылки. – kleopatra