Android: переключать представления во вкладках, не покидая текущей вкладки. Как приложение USA Today - PullRequest
0 голосов
/ 15 июня 2011

Я занимаюсь созданием приложения для спортивной команды и создал собственную панель вкладок, а не код Google для вкладок.Мне нравится, как работает приложение USA Today. Приложение USA Today Когда вы выбираете среди различных категорий новостей, меняется только вид, представленный ниже, он не переключается на совершенно новый экран / действие.Как они это делают?

Ответы [ 3 ]

2 голосов
/ 15 июня 2011

На скриншоте видно, что различные категории содержатся в представлении Gallery.Через setOnItemSelectedListener вы можете зарегистрироваться для обратного вызова, когда пользователь выбирает другой элемент.Затем вы можете программно изменить основной View или заполнить его новыми данными.

Например, скажем, у вас есть ViewFlipper и Gallery, определенные в вашем макете, где порядок элементов в вашемGallery соответствует порядку Views в ViewFlipper.В своей деятельности вы используете findViewById, чтобы получить ссылки на эти Views (переменные flipper и gallery).Вы могли бы тогда сделать:

    myGallery.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            flipper.setDisplayedChild(position);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
2 голосов
/ 17 июня 2011

Вы можете использовать ActivityGroup для переключения между различными представлениями на текущей вкладке.вот демо для этого.http://androidgenuine.com/

Полная демонстрация ActivityGroup

0 голосов
/ 15 июня 2011

Я не знаю, как они реализовали эту функцию в своем приложении. Скорее всего, они просто изменяют дерево видов, то есть программно заменяют один вид другим. Самая большая проблема в этом состоит в том, что вам обычно требуется много кода для поддержки каждого из представлений, которые могут отображаться в конкретном действии - код для загрузки данных, обработки пользовательских нажатий и т. Д. Вы можете поместить большую часть этого кода внутрь пользовательский класс View вместо того, чтобы иметь его в Activity. Если размещение «бизнес-логики» внутри View кажется извращенным, то я бы рекомендовал использовать Fragments . Затем изменение вкладок может быть обработано с помощью FragmentTransactions . Они были добавлены в Android 3.0, но есть пакет совместимости , который позволяет использовать их на Android 1.6+.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...