Intereting Posts
Строка состояния Android ожидает значков размером 25x25dp, а рекомендации рекомендуют 32x32dp. Кто не прав? Приложение Admob Ads иногда приводит к сбою в IllegalArgumentException Как обрабатывать разницу в часовых поясах между сервером и встроенным приложением для Android? Android: установить стиль textView во время выполнения Получение базы данных SQLite оболочкой adb в cmd Android получает высоту и ширину макета в фрагменте Как создать Android-приложение для управления Arduino через Wi-Fi? Как исправить «SQLiteConnection для gms database», которая была утечка Код переключения между режимами отладки и режима выпуска в java – android Sqlite Проверьте, нет ли таблицы Импорт контактов gmail в эмулятор Android NullPointerException в getReseources () Растровый массив Неверное завершение строки: найден возврат каретки (\ r) без соответствующей новой строки (\ n) Получить координаты из аппаратного GPS Использование SurfaceTexture, заполненного предварительным просмотром камеры, как вход Renderscript. Выделение в Jelly Bean

Лучшая практика для навигации по вкладкам?

Я ищу наилучшую практику использования навигации вкладок с помощью панели действий sherlock. Каков правильный способ смены фрагментов и добавления фрагментов в стопку и очистка заднего стека при выборе другой вкладки.

Есть ли хорошие примеры или проекты с открытым исходным кодом, показывающие, как это сделать правильно?

Solutions Collecting From Web of "Лучшая практика для навигации по вкладкам?"

Я бы не использовал ABS непосредственно для этого. У вас возникнут проблемы, как только ваши вкладки потребуют переключения фрагментов и т. Д. Я думаю, что правильный подход для этого – использовать ViewPagerIndicator, который совместим с ABS. В качестве бонуса вы также получаете салфетки справа налево между вкладками. Вам нужен пакет compat (например, для ABS), пример использования которого вы можете найти в папке samples .

Как сказал Эдгар, руководство по навигации в андроиде – хорошее место для начала. Но позвольте мне добавить некоторые комментарии к тому, как вкладки предназначены для работы с Android.

Новые вкладки acitonbar должны быть реализованы так же, как и в приложении Google Play. Это означает, что, как только вы захотите получить некоторые детали некоторого содержимого на вкладке, вы перейдете к новому представлению / фрагменту / активности, и вкладки исчезнут.

Таким образом, вкладки для android не должны отображаться все время, но только в верхней иерархии. Если вы хотите облегчить навигацию для пользователя, вы будете использовать кнопку «вверх», чтобы пользователь мог быстро вернуться в верхнюю иерархию, где вкладки видны.

Учебное пособие и образцы

Мой личный любимый пример и учебное пособие – это учебное пособие по вкладкам в учебном курсе на веб-странице googles.

Примеры навигации по вкладкам также можно найти в проекте образцов, который поставляется вместе с android-sdk. Перейдите по android-sdk\extras\android\support\samples\Support4Demos\src\com\example\android\supportv4\app : android-sdk\extras\android\support\samples\Support4Demos\src\com\example\android\supportv4\app И найдите: FragmentTabs.java или FragmentTabsPager.java .

Если вы хотите использовать ActionBarSherlock, вы также можете загрузить ActionBarSherlock и посмотреть папку samples в каталоге / samples. Там у вас есть вкладки demo в TabNavigation.java и TabNavigationCollapsed.java . Хотя я думаю, что вы должны дать учебному курсу действий выстрел.

Вкладки с задней стопой

Также давайте предположим, что вы хотите, чтобы панель вкладок была видима все время ( хотя это не рекомендуется ). Затем вам нужно создать собственный стек для каждой вкладки. Здесь вы можете посмотреть пример того, как это реализовать.

Карты и вкладки

Взгляните на все приложения Google, использующие Map. Google использует кнопки кнопок переполнения для навигации. Так что, если разработчики, но с Google mapsv2 для вкладок Android с картами, стало намного проще, если кто-то захочет это сделать.

Я много раз делал ActionbarSherlock с фрагментами и вкладками, и работа была замечательной.

Вам нужно TabListener:

 import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.Tab; import com.android.wifilogger.R; public class WifiTabListener implements ActionBar.TabListener { public Fragment fragment; public MainTabActivity act; public WifiTabListener(Fragment fragment, MainTabActivity act) { this.fragment = fragment; this.act = act; } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { ft.replace(R.id.root, fragment); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { ft.remove(fragment); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } } 

И настройки TabActivity:

 public class MainTabActivity extends SherlockFragmentActivity { public ActionBar actionBar; private ActionBar.Tab listTab; public MenuItem refreshItem; private SherlockFragment listFragment; private SherlockFragment mapFragment; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // getActionBar().setDisplayHomeAsUpEnabled(true); actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); setContentView(R.layout.main); ActionBar.Tab settingsTab = actionBar.newTab().setText("Settings") .setTag("settings"); listTab = actionBar.newTab().setText("Wifi List") .setTag("list"); ActionBar.Tab mapTab = actionBar.newTab().setText("Map").setTag("map"); SherlockFragment settingsFragment = new SettingsFragment(); listFragment = new WifiListFragment(); mapFragment = new WifiMapFragment(); settingsTab.setTabListener(new WifiTabListener(settingsFragment, this)); listTab.setTabListener(new WifiTabListener(listFragment, this)); mapTab.setTabListener(new WifiTabListener(mapFragment, this)); actionBar.addTab(listTab,false); actionBar.addTab(mapTab,false); actionBar.addTab(settingsTab,false); actionBar.selectTab(listTab); } 

Там, где вы должны изменить SettingsFragment, MapFragment и ListFragment на свои собственные фрагменты. Вы также можете добавить DialogFragment в один из этих tabfragments usng setTargetFragment, но это не ваш вопрос, я думаю.

Я рекомендую вам следовать шаблонам Android для навигации:

http://developer.android.com/design/patterns/navigation.html