Подтвердить что ты не робот

Как реализовать прокрутку между вкладками на Android?

Одна из ключевых рекомендаций по разработке в Android 4.0 для вкладок - позволяет прокручивать между ними, где это необходимо. Такое поведение позволяет пользователям прокручивать по горизонтали через выбранное содержимое вкладки, чтобы перейти к смежным вкладкам, без необходимости непосредственного взаимодействия с вкладками.

Как это можно реализовать?

4b9b3361

Ответ 1

ПРИМЕЧАНИЕ. Это отрывок из Обучение Android класс Внедрение эффективной навигации.


Чтобы реализовать это (в Android 3.0 или выше), вы можете использовать ViewPager в сочетании с ActionBar вкладки API.

При просмотре текущей страницы выберите соответствующую вкладку. Это поведение можно настроить с помощью ViewPager.OnPageChangeListener в вашем действии onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    mViewPager.setOnPageChangeListener(
            new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    // When swiping between pages, select the
                    // corresponding tab.
                    getActionBar().setSelectedNavigationItem(position);
                }
            });
    ...
}

И после выбора вкладки перейдите на соответствующую страницу в ViewPager. Чтобы сделать это, добавьте ActionBar.TabListener на свою вкладку при ее создании с помощью метода newTab():

actionBar.newTab()
        ...
        .setTabListener(new ActionBar.TabListener() {
            public void onTabSelected(ActionBar.Tab tab,
                    FragmentTransaction ft) {
                // When the tab is selected, switch to the
                // corresponding page in the ViewPager.
                mViewPager.setCurrentItem(tab.getPosition());
            }
            ...
        }));

Ответ 2

Если вы ориентируетесь на API ниже Android 3.0, вы не можете использовать римское решение выше.

Я написал сообщение в блоге здесь о том, как сделать то же самое с ActionBarSherlock, если кто-либо интересно.