2015-06-15 2 views
7

Я создаю приложение для Android, которое, хотя оно имеет совершенно другую функцию, имеет очень похожий интерфейс для Instagram. Существует нижняя панель с кнопками для просмотра временной шкалы, публикации (содержимого моего приложения), проверки уведомлений и просмотра собственного профиля.Как структурирована Android-Instagram?

Я студентка по электротехнике четвертого курса, но я относительно новичок в разработке Android. Чтобы быстрее научить себя больше, я пошел вперед и сделал множество функций своего приложения (например, просмотр сообщений, профиль, график, друзей и т. Д.), Их собственные действия со своей собственной нижней панелью (которые являются просто кнопками как теперь). При этом я многому научился о разработке и создал приложение, которое для того, что я разработал до сих пор, функционирует так, как это предполагается, но не слишком быстро или красиво. Я понимаю, что это, вероятно, не самая лучшая практика, и я хотел спросить вас все, что вы думаете, простое объяснение того, как реализовать Instagram-подобный интерфейс? Когда я говорю Instagram-like, я имею в виду главным образом: он включает нижнюю панель; приложение «сохраняет», где находится пользователь, например, если я просматриваю друга с временной шкалы, затем нажмите кнопку профиля профиля, затем снова нажмите шкалу времени, затем я все равно буду просматривать моего друга.

Я пробовал читать как можно больше, чтобы решить редизайн, но я все еще немного нечеткий на стандарте для выполнения чего-то подобного. Должен ли я попробовать TabHost (который устарел)? должна ли каждая кнопка представлять собой активность со свопимыми представлениями (например, в IG я нажимаю сообщение на моей временной шкале, и он меняет вид на изображение)? Должен ли я связать действие с каждой кнопкой и обменивать фрагменты на основе того, где пользователь перемещается? Я понимаю, что это открытый вопрос, и я надеюсь, что это слишком сложно для Stack Overflow, но я много думал об этом, и я был бы признателен за отзывы некоторых более опытных разработчиков! Благодаря!

ответ

4

Вы можете использовать новый TabLayout, который содержится в библиотеке дизайна поддержки, а также просмотр пейджера для переключения между вашими фрагментами.

You can read about the TabLayout as well as some of the other things packed in to the design library here.

Reference for TabLayout

редактировать: В комментариях я упомянул аналогию, чтобы вы думали о том, как использовать фрагменты vs. деятельности. В интересах нераспространения дезинформации я собираюсь вернуться к тому, что я сказал немного. Вы можете абсолютно использовать отдельные действия и переключаться между ними с помощью вкладок. Итак, правильный ответ - это где-то посередине. MainActivity по-прежнему будет удерживать tablayout и управлять прослушивателем вкладок и переключаться между вкладками, но вы можете установить содержимое tablayout, чтобы содержимое содержало новую активность. Но вы можете сделать это и с фрагментами, и, возможно, более эффективно.

Это действительно зависит от структуры вашего приложения и его глубины. Если у вас есть только 4 фрагмента, и информация ориентирована на один рабочий поток, вы можете использовать только одно действие с четырьмя фрагментами. На самом деле разработчик знает, как управлять этим.

Поскольку фрагменты вышли, существует одна философия, если пространство, которое вы используете, может быть перераспределено, то есть если вы работаете в одном и том же поле (например, область над панелью вкладок приложения instagram) , используйте фрагмент. (Ссылка от here). Вкладка камеры - хороший пример того, где можно использовать активность. Функциональность камеры представляет собой совершенно другой рабочий процесс, чем при навигации по каналам, изображениям и профилям приложения instagram. Таким образом, фид может быть одним фрагментом, а профиль пользователя - другим, но все они управляются одним и тем же действием и используют один и тот же кадр содержимого.

В приведенной выше ссылке, приведенной выше, есть другие ответы, которые должны помочь вам в дальнейшем.

+0

Спасибо! Это похоже на то, что я ищу. Хорошо видеть эту стратегию в этом очень недавнем блоге разработчиков. И я уверен, что понимаю логику всего этого. Один последний быстрый вопрос: я представляю, что слушатель каждой вкладки создаст/запустит/возобновит действие, которое содержит пейджер представления, который поменяет меня на фрагменты, которые я хочу. Имеет ли это смысл? – ThePartyTurtle

+1

Мм, я бы так не подумал. Подумайте, как начать работу, открыв новое окно браузера. Фрагменты больше похожи на изменение вкладок в том же окне браузера. Это не 100% точное сравнение, но я думаю, что это имеет смысл. В основном у вас будет одно основное действие, которое связывает разные «вкладки» вместе, где каждая вкладка является отдельным фрагментом, но все они управляются одним и тем же действием. Имеют смысл? – charliebeckwith

+0

Да! Это имеет смысл. В моем случае я хочу только одно «окно» (мое приложение) с четырьмя «вкладками» (фрагменты). Но я все еще немного смущен. В соответствии с примером браузера, что бы перейти на другую веб-страницу на одной вкладке, как в контексте приложения для Android? Например, если пользователь Instagram находится на временной шкале, а затем они нажимают на профиль друзей, они все еще находятся на одной вкладке хоста вкладки (например, остаются на одной вкладке в браузере), но теперь они смотрят на свои друзей. Это тот случай, когда у нас есть один фрагмент, который обменивается с другим фрагментом/представлением? – ThePartyTurtle

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