美文网首页
viewPager 的滑动带渐变的动画

viewPager 的滑动带渐变的动画

作者: 坚持编程_lyz | 来源:发表于2017-06-14 18:21 被阅读305次

InfiniteCycleViewPager 项目里有一个

HorizontalInfiniteCycleViewPager类 继承的ViewPager 实现了自己的一个ViewPageable接口 , 主要是就拿到InfiniteCycleManager 内部层逻辑处理后传递的参数,我们来调用系统的viewPager的代码;

InfiniteCycleManager 控制写逻辑代码

InfiniteCyclePagerAdapter 是一个包装类,用户传递过来pagerAdapter 实现类

package com.gigamole.infinitecycleviewpager;

import android.support.v4.view.PagerAdapter;
import android.view.View;

import static android.support.v4.view.ViewPager.OnPageChangeListener;
import static android.support.v4.view.ViewPager.PageTransformer;

/**
 * Created by GIGAMOLE on 7/27/16.
 */

// Interface that duplicate methods of ViewPager for implements it in Horizontal and Vertical
// InfiniteCycleViewPager for casting them to ViewPageable in InfiniteCycleManager
interface ViewPageable {

    boolean hasWindowFocus();
    int getCurrentItem();
    int getChildCount();
    View getChildAt(final int index);
    PagerAdapter getAdapter();

    boolean post(final Runnable runnable);

    void addOnPageChangeListener(final OnPageChangeListener onPageChangeListener);
    void setClipChildren(final boolean clipChildren);
    void setDrawingCacheEnabled(final boolean drawingCacheEnabled);
    void setWillNotCacheDrawing(final boolean willNotCacheDrawing);
    void setOverScrollMode(final int overScrollMode);
    void setCurrentItem(final int item);
    void setPageTransformer(final boolean reverseDrawingOrder, final PageTransformer transformer);
    void setPageMargin(final int pageMargin);
    void setOffscreenPageLimit(final int offscreenPageLimit);

    boolean isFakeDragging();
    boolean beginFakeDrag();
    void fakeDragBy(final float dragBy);
    void endFakeDrag();

}

其实 HorizontalInfiniteCycleViewPager 他就是自定义的�ViewPager

推荐 GitHub: https://github.com/Devlight/InfiniteCycleViewPager

相关文章

网友评论

      本文标题:viewPager 的滑动带渐变的动画

      本文链接:https://www.haomeiwen.com/subject/xoheqxtx.html