2013-08-27 3 views
0

Я изучаю фрагменты и «Поддержка нескольких устройств». В зависимости от типа устройства, ориентации и размера, можно определить несколько макетов с использованием фрагментов и повторного использования письменного кода. Во время разработки из приложения, я записал свой желаемый интерфейс для планшетных устройств, как описано в следующем скриншоте:UI Макет, фрагменты и различный контент

design

Активность содержит два фрагмента и отображает меню 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(); 
     } 
    } 

Является ли моя идея макета более эффективной? Должен ли я что-то изменить на моем дизайне, чтобы правильно реализовать фрагментацию?

ответ

0

Вот решение вашей проблемы

https://github.com/theomega/ActivatedStateDemo

+3

Обратите внимание, что [ссылка только ответы] (http://meta.stackoverflow.com/tags/link-only-answers/info) не рекомендуется , SO ответы должны быть конечной точкой поиска решения (а также еще одной остановки ссылок, которые со временем становятся устаревшими). Пожалуйста, подумайте о добавлении отдельного резюме здесь, сохранив ссылку в качестве ссылки. – kleopatra

Смежные вопросы