Проведите TabWidget по прокрутке ViewPager

Я пишу приложение, в котором использую FragmentTabHost. Каждый из дочерних узлов содержит ViewPager как дочерний элемент. Здесь я хочу переместить управление на второй TabWidget, если пользователь прокручивает последнюю страницу ViewPager первого TabWidget.

Пример: например, вкладка Recharge имеет собственную реализацию типа ViewPager, и когда она перемещается с последней страницы ViewPager, управление перемещается на вкладку Электроника. Как я могу добиться этого!

введите здесь описание изображения

Любое предложение !


person CoDe    schedule 14.10.2015    source источник
comment
Вы проверили этот пост stackoverflow.com/questions /26381850/   -  person Ajit Kumar Dubey    schedule 14.10.2015
comment
@Ajit это, мне нужно проверить... также в моем случае я использовал Fixed FragmentTabHost с 3 TabWidget, так что не знаю, чем здесь может помочь PagerTabStrip.   -  person CoDe    schedule 14.10.2015
comment
Вы имеете в виду, что у вас есть только три фрагмента (исправлено), верно?   -  person Ajit Kumar Dubey    schedule 14.10.2015
comment
Да... Аджит использует FragmentTabHost с 3 TabWidget, как упоминалось в предыдущем комментарии.   -  person CoDe    schedule 14.10.2015
comment
для большего пояснения, вы хотите, чтобы пользователь, проведя пальцем с третьей страницы, попал на первую страницу, верно?   -  person Ajit Kumar Dubey    schedule 14.10.2015
comment
нна.. это должно работать точно так же, без циклического перебора. Итак, скажем, после свайпа вправо, если элемент управления перемещается на вторую вкладку, то при свайпе влево он должен вернуться на первую вкладку. То же самое для перехода на 2-ю и 3-ю вкладки. Есть идея!   -  person CoDe    schedule 14.10.2015
comment
Давайте продолжим обсуждение в чате.   -  person Ajit Kumar Dubey    schedule 14.10.2015


Ответы (1)


Создайте пользовательскую страницу просмотра. Если дочерний пейджер просмотра находится в конце, прокрутите родительский

protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if(v != this && v instanceof ViewPager) {
        int currentItem = ((ViewPager) v).getCurrentItem();
        int countItem = ((ViewPager) v).getAdapter().getCount();
        if((currentItem==(countItem-1) && dx<0) || (currentItem==0 && dx>0)){
            return false;
        }
        return true;
    }
    return super.canScroll(v, checkV, dx, x, y);
}
person Sunny    schedule 14.10.2015
comment
солнечно, в этом случае, если пейджер просмотра дошел до последней страницы, вы больше не сможете получить событие прокрутки ... поэтому не знаете, как ваше решение будет работать в этом случае! - person CoDe; 14.10.2015