InfiniteViewPager icon indicating copy to clipboard operation
InfiniteViewPager copied to clipboard

CirclePageIndicator is not working with InfiniteViewPager

Open GaneshB-Extentia opened this issue 10 years ago • 12 comments

CirclePageIndicator (com.viewpagerindicator.CirclePageIndicator) is not working with InfiniteViewPager.

GaneshB-Extentia avatar May 12 '15 11:05 GaneshB-Extentia

This worked quite nicely for me: https://github.com/surfstudio/InfinitePageIndicator

joshma91 avatar May 19 '15 18:05 joshma91

@joshma91 The link provided above worked but the animation of circlepageindicator from last item to first item not good? because it go to empty spot then come to first spot. Any idea how we can fix the animation from last to first of circlepageindicator with infiniteViewpager?

vsay01 avatar Jan 25 '16 15:01 vsay01

@vsay01 I'm sorry, I'm a bit removed from the project where I used this and don't have the source code anymore. Did you do all of the things this page recommends doing? https://github.com/surfstudio/InfinitePageIndicator/blob/master/README.md

joshma91 avatar Jan 25 '16 18:01 joshma91

@joshma91 Yes, I was be able to set the circlepagindicator with the infiniteviewpager. But in the demo, they recommended the animation should be disabled. From the demo:

// Because animation between circles now looks ugly, we should disable it
   mPageIndicator.setSnap(true);

When I enable the animation it works fine first to second to the last but the animation from last to first and first to last the animation not good because selected circle move to the empty spot (virtual spot) before move to first or last.

Any idea how can we improve it? Thank

vsay01 avatar Jan 25 '16 19:01 vsay01

@vsay01 Found my code - here's my implementation. You can see there's a couple tweaks in here which I think I needed to add to get it to work. Hope this helps

    pagerView = (InfiniteViewPager) activity.findViewById(R.id.pager);
    pageIndicator = (CirclePageIndicator) activity.findViewById(R.id.line_indicator);
    pageIndicator.setSnap(true);
    currentPosition = 0;

    ArrayList<ListItem> listItem = getListItems();

    //add the first item again as the last, to create the wrap effect
    listItem.add(listItem .get(0));

    //insert a copy of the last item as the new first item, so we can scroll backwards
    listItem.add(0, listItem.get(listItem.size() - 1));

    listAdapter = new ListAdapter(activity, listItem);
    pagerAdapter = new InfinitePagerAdapter(listAdapter );
    pagerAdapter.setOneItemMode();
    pagerView.setAdapter(pagerAdapter);

    pagerView.setCurrentItem(currentPosition);
    pageIndicator.setCurrentItem(currentPosition);
    pagerView.invalidate();

   pagerView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent touchevent) {
            return false;
        }
    });

joshma91 avatar Jan 25 '16 20:01 joshma91

@joshma91 Thank I followed the code I got an error ViewPager has not been bound it seems like you didnt bound the view pager to pageindicator?

Plus when you setSnap(true) it will disable the animation, but I would like to keep the animation of the circlePageindicator.

vsay01 avatar Jan 25 '16 21:01 vsay01

@vsay01 woops. turns out I set the viewpager in another method. Put this pageIndicator.setViewPager(pagerView); right before pagerView.setCurrentItem(currentPosition)

I'm not sure about the setSnap. Just try true/false and see what works for you

joshma91 avatar Jan 25 '16 22:01 joshma91

@joshma91 I tried your code

  • when added the last item to the front of the circle increase for instance: 4 slides has 5 circle
  • No animation When enable animation using setSnap(false) the same animation issue (when circle move from the last to the first item it move to the empty spot ahead then go to first item)

vsay01 avatar Jan 26 '16 16:01 vsay01

@vsay01 I'm sorry, I'm out of ideas on how to help you now. That was all I had for my code... Good luck with this, I hope you figure it out soon.

joshma91 avatar Jan 26 '16 17:01 joshma91

@joshma91 Thank :+1:

vsay01 avatar Jan 26 '16 20:01 vsay01

doesnt work for me, it freezes then crashes later

monchiez13 avatar Apr 04 '17 02:04 monchiez13

@monchiez13 For me too - it crashes if I use TabLayout with InfiniteViewPager !! Seems this lib is not intended to work with the TabLayouts or page indicators !!

Any fix would be appreciated !! :)

RahulSDeshpande avatar Nov 23 '17 11:11 RahulSDeshpande