1

I use Vertical View Pager in my xml

<com.fadeltd.trivia.VerticalViewPager
    android:id="@+id/result_main_view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</com.fadeltd.trivia.VerticalViewPager>

Then in my code

viewPager.setAdapter(new PagerAdapter(getSupportFragmentManager()));

class PagerAdapter extends FragmentStatePagerAdapter {
    Fragment fragments[];

    public PagerAdapter(FragmentManager fragmentManager) {
        super(fragmentManager);
        fragments = new Fragment[]{
                ExperienceFragment.newInstance(),
                RankFragment.newInstance(),
                QuestionFragment.newInstance(),
        };
    }

    @Override
    public Fragment getItem(int position) {
        return fragments[position];
    }

    @Override
    public int getCount() {
        return fragments.length;
    }
}

It works fine and I can swipe up and down using the view pager, but I want to use a standard view pager with left right swipe in one of my fragment (QuestionFragment)

public class QuestionFragment extends Fragment {
    ...
    public void setupQuestions() {
        Fragment[] fragments = new Fragment[questionList.size()];
        for (int i = 0; i < questionList.size(); i++) {
            Question question = questionList.get(i);
            switch (question.getType()) {
                case Question.TYPE_TEXT:
                    fragments[i] = QuizTextFragment.newInstance(question);
                    break;
                case Question.TYPE_IMAGE:
                    fragments[i] = QuizImageFragment.newInstance(question);
                    break;
                case Question.TYPE_ESSAY:
                    fragments[i] = QuizEssayFragment.newInstance(question);
                    break;
            }
        }

        PagerAdapter adapter = new PagerAdapter(getChildFragmentManager(), fragments);
        QuestionViewPager.setAdapter(adapter);
    }

    class PagerAdapter extends FragmentStatePagerAdapter {
        Fragment[] fragments;

        public PagerAdapter(FragmentManager fragmentManager, Fragment[] fragments) {
            super(fragmentManager);
            this.fragments = fragments;
        }

        @Override
        public Fragment getItem(int position) {
            return fragments[position];
        }

        @Override
        public int getCount() {
            return fragments.length;
        }
    }
}

But whenever I try to swipe down to the last Page from the ViewPager, My App suddenly freeze, and a few moment later, the App isn't responding

Not Responding

Community
  • 1
  • 1
fadeltd
  • 349
  • 1
  • 4
  • 18
  • Can you show the logs? – azizbekian Apr 20 '17 at 08:39
  • 04-20 15:29:30.908 1619-1636/com.fadeltd.trivia W/art: Suspending all threads took: 19.870ms 04-20 15:29:41.608 1619-1635/com.fadeltd.trivia I/art: Thread[5,tid=1635,WaitingInMainSignalCatcherLoop,Thread*=0xb8ffebe0,peer=0x12c00080,"Signal Catcher"]: reacting to signal 3 04-20 15:29:41.848 1619-1635/com.fadeltd.trivia I/art: Wrote stack traces to '/data/anr/traces.txt' 04-20 15:29:47.848 1619-1642/com.fadeltd.trivia I/art: Background partial concurrent mark sweep GC freed 267107(8MB) AllocSpace objects, 0(0B) LOS objects, 36% free, 28MB/44MB, paused 1.232ms total 107.891ms – fadeltd Apr 20 '17 at 08:43
  • Perform `QuestionViewPager.requestDisallowInterceptTouchEvent(true)` – azizbekian Apr 20 '17 at 08:45
  • it doesn't work, still freeze and not responding – fadeltd Apr 20 '17 at 08:50

0 Answers0