ViewPager(Banner广告栏)、ViewFlipper、ViewFlow-android,ViewPager2

Android中三种超实用的滑屏方式汇总(ViewPager ViewFlipper ViewFlow)-http://smallwoniu.blog.51cto.com/3911954/1308959
> ViewFilpper
ViewFilpper控件是系统自带控件之一,主要用于在同一个屏幕间的切换及设置动画效果、间隔时间,且可以自动播放。
> ViewFlow
ViewFlow不是google官方的api,它是gethub上的一个开源项目,利用ViewFlow可以产生视图切换的效果,https://github.com/pakerfeldt/android-viewflow
> ViewPager 指示器
-- 横向滑动和纵向滑动的
横向和纵向ViewPager- https://download.csdn.net/download/forwardyzk/8375173
Vertically ViewPager and vertically transformer for Android- https://github.com/kaelaela/VerticalViewPager
打造一个垂直的ViewPager- https://www.jianshu.com/p/b9a9717e98e8
VerticalViewPager- https://github.com/castorflex/VerticalViewPager
vertically and horizontally- https://github.com/JakeWharton/Android-DirectionalViewPager
Vertical implementation of Android ViewPager- https://github.com/LambergaR/VerticalViewPager/

-- LitePager(仿网易云音乐-歌单广场效果),轻量级的ViewPager- https://github.com/Ifxcyr/LitePager

-- ViewPager 指示器
Paging indicator widgets compatible with ViewPager- https://github.com/JakeWharton/ViewPagerIndicator
ViewPager指示器- https://github.com/JakeWharton/Android-ViewPagerIndicator
使用ViewPager+ViewPagerIndicator-http://blog.csdn.net/ydpzg/article/details/41644399
坑爹的ViewPager- http://blog.csdn.net/bdmh/article/details/48243081
ViewPager 如何动态更换显示内容- http://blog.csdn.net/bdmh/article/details/48464097

-- viewpager问题
viewpager中彻底性动中动态添加、删除Fragment加、删除Fragment- http://www.xuebuyuan.com/1895454.html 
ViewPager页面滑动Fragment销毁问题- http://blog.csdn.net/walid1992/article/details/49745419
Android三层滑动控件显示冲突和ViewPager高度动态调整的解决方案Demo- http://download.csdn.net/detail/cc_lova_wxf/9553602
ScrollView+ViewPager,如何动态改变viewPager的高度?-- http://www.jianshu.com/p/a06204e601de#
ViewPager高度自适应,随着pager页的高度改变Viewpager的高度-http://blog.csdn.net/qq_34972666/article/details/52386999?locationNum=11

-- 导航ViewPager Tab颜色渐变效果,导航栏切换 PagerSlidingTabStrip
实现Viewpager的背景随手指移动而发生改变,并且可以从左上角到右下角的渐变随手指移动继续渐变-https://github.com/SeaSoon/GradientChange/tree/master
Android 自定义控件玩转字体变色 打造炫酷ViewPager指示器-https://blog.csdn.net/lmj623565791/article/details/44098729
字体或者图片可以逐渐染色和逐渐褪色的动画效果- https://github.com/hongyangAndroid/ColorTrackView
android viewPager 滑动标题颜色渐变效果- https://blog.csdn.net/xielinhua88/article/details/51280576
An interactive indicator to navigate between the different pages of a ViewPager- https://github.com/astuetz/PagerSlidingTabStrip
An interactive indicator to navigate between the different pages of a ViewPager- https://github.com/H07000223/FlycoTabLayout

viewPager 滑动标题颜色渐变效果,指示器和Tab颜色都渐变-https://github.com/desaco1989/ViewPagerSlideGradient

-- 懒加载LasyViewPager
 ViewPager不在android sdk 自带jar包中,来源google 的补充组件android-support-v4.jar中。
 ViewPager删除某个Pager,不仅要使adapter中的数据删除,而且也要使用ViewPager来删除当前的页面 : Viewpager.removeview(**)。ViewPager控件有个特有的预加载机制,即默认情况下当前页面左右两侧的1个页面会
被加载,以方便用户滑动切换到相邻的界面时,可以更加顺畅的显示出来.通过ViewPager的setOffscreenPageLimit(int limit)可以设置预加载页面数量,当前页面相邻的limit个页面会被预加载进内存.

实现ViewPager懒加载的三种方法- https://blog.csdn.net/baidu_26654149/article/details/50992748
ViewPager+Fragment组合的预加载和懒加载- https://github.com/Crocutax/FragmentLazyloadDemo
懒加载LasyViewPager- https://github.com/lianghanzhen/LazyViewPager
- 使用 LazyFragment 来配合 ViewPager 的 setOffscreenPageLimit 进行懒加载界面和防止重新创建界面。
ViewPagerIndicator- https://github.com/LuckyJayce/ViewPagerIndicator/releases
ViewPagerIndicator- https://github.com/JakeWharton/ViewPagerIndicator
实现ViewPager懒加载的三种方法- https://github.com/lianghanzhen/LazyViewPager
ViewPager切换时粘滞视差的效果--模仿美丽说HIGO全球买手圈的滑动效果--http://blog.csdn.net/coder_nice/article/details/48267591
ViewPagerStickyTransformer--https://github.com/nicewarm/ViewPagerStickyTransformer

-- ViewPager翻书效果,切换动画
JumpingBeans是加载页面时那个蓝色跳动的动画效果 - https://github.com/frakbot/JumpingBeans
JazzyViewPager 支持Fragment切换动画的ViewPager,动画包括转盘、淡入淡出、翻页、层叠、旋转、方块、翻转、放大缩小等 - https://github.com/jfeinstein10/JazzyViewPager
ViewPager 16种切换动画- https://github.com/AndroidMsky/ViewPagerAnimation
Android 滑动效果 华丽翻页效果- http://download.csdn.net/download/sunboy_2050/4247971
利用ViewFlipper实现滑动翻页的效果 GIF动画实现- http://blog.csdn.net/u014737138/article/details/40859913
Android ViewPager多页面滑动切换以及动画效果- http://www.cnblogs.com/dwinter/archive/2012/02/27/AndroidViewPager%E5%A4%9A%E9%A1%B5%E9%9D%A2%E6%BB%91%E5%8A%A8%E5%88%87%E6%8D%A2%E4%BB%A5%E5%8F%8A
%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C.html

Android 实现书籍翻页效果 完结篇-  http://blog.csdn.net/hmg25/article/details/6342539  http://download.csdn.net/source/3216809
Android 自定义 ViewPager 打造千变万化的图片切换效果- http://blog.csdn.net/lmj623565791/article/details/38026503  
Android 自定义 ViewPager 打造千变万化的图片切换效果- http://download.csdn.net/download/lmj623565791/7663605
Android 自定义 ViewPager 打造千变万化的图片切换效果- http://blog.csdn.net/androidmsky/article/details/50248937
Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI-http://blog.csdn.net/lmj623565791/article/details/42160391

-- RecyclerView 添加 Header,Banner实现轮播图(RecyclerView添加Header),ListView添加头部
首页轮播图和list混合(RecyclerView 添加 Header)- https://github.com/Bigkoo/Android-ConvenientBanner
Powerful and flexible RecyclerAdapter- https://github.com/CymChad/BaseRecyclerViewAdapterHelper

-- 广告栏Banner ,头部的商品图轮播 ConvenientBanner  
可用首页推荐及Banner- https://github.com/hejunlin2013/SuperIndicator
RecyclerView添加Header(头布局)+无限轮播- https://blog.csdn.net/u013091087/article/details/51557433
https://download.csdn.net/download/u013091087/9538055
Super fast and easy way to create header for Android RecyclerView- https://github.com/blipinsk/RecyclerViewHeader
banner- https://github.com/youth5201314/banner
An amazing and convenient Android image slider- https://github.com/daimajia/AndroidImageSlider
android广告栏,可在列表中添加此Banner- https://github.com/dongjunkun/BannerLayout
BGABanner-Android,地址为:https://github.com/bingoogolapple/BGABanner-Android
Android UI - 实现广告Banner轮播效果-http://blog.csdn.net/wwj_748/article/details/44243053
Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)-http://blog.csdn.net/stevenhu_223/article/details/45577781
Android 实现广告Banner循环轮播- http://blog.csdn.net/itachi85/article/details/50072619
史上最简单Android图片轮播效果实现--http://download.csdn.net/download/l1028386804/9057555
安卓广告轮播效果-- http://download.csdn.net/detail/catoop/8025409
安卓首页图片轮播效果(淘宝、京东首页广告效果)-http://blog.csdn.net/catoop/article/details/39993075
android图片轮播效果,RollViewPager的简单使用-http://blog.csdn.net/double2hao/article/details/51328824
Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)-http://blog.csdn.net/stevenhu_223/article/details/45577781
viewpager的轮播框架--https://github.com/Jude95/RollViewPager
viewpager的无限轮播,能够响应点击事件http://blog.csdn.net/yueye12/article/details/49132539
CycleViewPager类为实现可循环,可轮播的ViewPager的核心类,继承自Fragment - http://download.csdn.net/detail/stevenhu_223/8675717
自定义ViewPager实现 - http://download.csdn.net/detail/stevenhu_223/8697903
android实现banner图 - http://download.csdn.net/download/u011635318/6974101
Android APP Banner MZBannerView- https://github.com/pinguo-zhouwei/MZBannerView

-- Android屏蔽/禁止ViewPager左右滑动/滚动
  重写ViewPager,覆盖ViewPager的onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false,那么ViewPager就不会消耗掉手指滑动的事件了。
public class NoScrollViewPager extends ViewPager {
    private boolean isScroll = false;

    public NoScrollViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public NoScrollViewPager(Context context) {
        super(context);
    }

    /**
     * 1.dispatchTouchEvent一般情况不做处理
     * ,如果修改了默认的返回值,子孩子都无法收到事件
     */
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        return super.dispatchTouchEvent(ev);   // return true;不行
    }

    /**
     * 是否拦截
     * 拦截:会走到自己的onTouchEvent方法里面来
     * 不拦截:事件传递给子孩子
     */
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        // return false;//可行,不拦截事件,
        // return true;//不行,孩子无法处理事件
        //return super.onInterceptTouchEvent(ev);//不行,会有细微移动
        if (isScroll) {
            return super.onInterceptTouchEvent(ev);
        } else {
            return false;
        }
    }

    /**
     * 是否消费事件
     * 消费:事件就结束
     * 不消费:往父控件传
     */
    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        //return false;// 可行,不消费,传给父控件
        //return true;// 可行,消费,拦截事件
        //super.onTouchEvent(ev); //不行,
        //虽然onInterceptTouchEvent中拦截了,
        //但是如果viewpage里面子控件不是viewgroup,还是会调用这个方法.
        if (isScroll) {
            return super.onTouchEvent(ev);
        } else {
            return true;// 可行,消费,拦截事件
        }
    }

    public void setScroll(boolean scroll) {
        isScroll = scroll;
    }
}

> ViewPager2

ViewPager2- https://github.com/googlesamples/android-viewpager2
ViewPager2重大更新,支持offscreenPageLimit- https://juejin.im/post/5cda3964f265da035d0c9d8f
 ViewPager有两个毛病:不能关闭预加载和更新Adapter不生效,所以开头我为什么说offscreenPageLimit在ViewPager上十分不友好;本质上是因为offscreenPageLimit不能设置成0(设置成0就是想象中的关闭预加载);
 新版的Fragment中(Version 1.1.0-alpha07),该方法setUserVisibleHint已经过时,由FragmentTransactionsetMaxLifecycle替代,新版本的FragmentPagerAdapter可以设置直接调用生命周期,这代表ViewPager+Fragment懒加载有更好的解决方案。

-- ViewPager 要被废弃?官方ViewPager2升级版来临
  从文档注释来看ViewPager2确实是用来替代ViewPager 的,顺带解决之前ViewPager的一些问题,并且加入了 RTL,竖向滚动支持,下面一起来详细看下吧。ViewPager2 replaces ViewPager, addressing most of its predecessor’s pain-points, including right-to-left layout support, vertical orientation, modifiable Fragment collections, etc.

新功能:
支持RTL布局
支持竖向滚动
完整支持notifyDataSetChanged

API的变动:
FragmentStateAdapter替换了原来的 FragmentStatePagerAdapter
RecyclerView.Adapter替换了原来的 PagerAdapter
registerOnPageChangeCallback替换了原来的 addPageChangeListener

-- TabLayout+ViewPager2+Fragment来实现联动展示效果。
 implementation 'androidx.viewpager2:viewpager2:1.0.0-alpha01'
https://developer.android.google.cn/reference/androidx/viewpager2/widget/ViewPager2
通过android:orientation来指定滚动方向:
<androidx.viewpager2.widget.ViewPager2
        android:id="@+id/viewpager2"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:orientation="vertical" />

在代码中设置一个普通的RecyclerView.adapter:
ViewPager2 viewPager2=findViewById(R.id.viewpager2);
RecyclerviewAdapter adapter = new RecyclerviewAdapter(this);
viewPager2.setAdapter(adapter);

 viewpager2利用recyclerview来实现viewpager的功能,无疑使使其可扩展性大大提升,代码也变得更优雅简洁,使用起来也更灵活。不过目前viewpager2只是第一个预览版,还存在稳定性方面的问题,不建议大家引入到正式项目中来,尝尝鲜就好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值