#android #android-fragments #android-activity #android-navigation-bar
#Android #android-фрагменты #android-активность #android-navigation-bar
Вопрос:
У меня есть приложение с панелью навигации для перехода между разными экранами приложения. Некоторые из этих экранов просты и могут быть легко отображены с помощью фрагмента, в то время как другие требуют от меня извлечения данных с сервера и заполнения полей или просмотра списка в зависимости от экрана.
Должен ли я использовать сочетание фрагментов и действий в зависимости от потребностей каждого экрана? Использование фрагментов удобно, потому что переход экрана на самом деле не заметен, тогда как запуск нового действия заметен. Есть ли какая-либо информация о лучших практиках для ситуации, когда у меня есть информация, загружаемая асинхронно во время запуска действия? Я бы предпочел не использовать фрагмент для этой ситуации, поскольку фрагмент будет отображаться, а представление информации / списка будет заполнено после отображения экрана.
Комментарии:
1. В моем понимании, как fragment, так и activity будут иметь одинаковую проблему, если они отображаются до того, как асинхронный вызов для получения данных появится после отображения. У меня похожая ситуация в моем приложении, и я полагаюсь на локальную базу данных sqllite для хранения информации, загруженной ранее. Если асинхронный процесс завершится первым, он в любом случае покажет свежие данные, иначе пользователь увидит данные, как только они снова вернутся к этому экрану. Не уверен, поможет ли это.
2. @SachiinGupta Это вроде как помогает. Проблема в том, что два моих экрана являются экранами поиска, поэтому я не могу предварительно загрузить данные заранее.
Ответ №1:
Я использую фрагменты, когда использую NavigationDrawer в своем приложении для загрузки данных и отображения списка или любого другого макета. Вы можете использовать AsyncTask во фрагменте также для загрузки данных и их отображения.
Во-вторых, как вы можете узнать, какое меню будет выбрано пользователем для загрузки данных перед созданием фрагмента. Для загрузки данных и заполнения во фрагмент очень хорошо показывать экран загрузки или что-то вроде индикатора выполнения.
Ответ №2:
У вас есть несколько вариантов:
1) Используйте пакет из намерения:
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Создайте новый пакет
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Используйте метод быстрого доступа putExtra () для намерения
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Комментарии:
1. Извините, возможно, я не совсем понял, что искал. Допустимо ли использовать действия при навигации по приложению через панель навигации в нижней части экрана или есть способ использовать фрагменты без появления отложенной информации на экране по завершении загрузки?