Created
June 25, 2015 18:00
-
-
Save evant/238346704d8d09a18a78 to your computer and use it in GitHub Desktop.
Disable ViewPager hardware layer if you are animating the items within while paging
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ViewPagerRemoveHardwareLayer implements ViewPager.OnPageChangeListener { | |
private ViewPager mPager; | |
public ViewPagerRemoveHardwareLayer(ViewPager pager) { | |
mPager = pager; | |
} | |
@Override | |
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { | |
} | |
@Override | |
public void onPageSelected(int position) { | |
} | |
@Override | |
public void onPageScrollStateChanged(int state) { | |
removeHardwareLayer(mPager, state); | |
} | |
public static void removeHardwareLayer(ViewPager pager, int state) { | |
// A small hack to remove the HW layer that the viewpager add to each page when scrolling. | |
if (state != ViewPager.SCROLL_STATE_IDLE) { | |
final int childCount = pager.getChildCount(); | |
for (int i = 0; i < childCount; i++) | |
pager.getChildAt(i).setLayerType(View.LAYER_TYPE_NONE, null); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment