rxJava +viewpager 组成万能的CarouselView轮播

我来给大家介绍一个rxjava+viewpager组成的CarouselView 自定义控件;它能实现以下功能


引导页

首先是实现引导页效果,只需加入轮播的数据,并设置底部切换图片即可,如果不想设置底部图片,默认-1代表的是设置默认的小圆点

welcomeCarouselview.setDotCarouselData(getList(),R.drawable.selector, R.drawable.select_no);


这里提供了滑动监听事件来监听滑动page;

welcomeCarouselview.setOnPageChangeListerer(new OnPageChangeListerer() {

@Override

    public void onPageChange(int i) {

tvAction.setVisibility(i==2? View.VISIBLE:View.GONE);

}

});


轮播图

这里实现的是我们最常见的轮播图,并且它可以实现如上几个方法和属性;除此之外rxjava就派上了用场。

直接上代码:

当页面Pause 时,可以暂停viewpager的滚动,增加app性能,减少不必要的负荷

@Override

protected void onPause() {

super.onPause();

if(actMainCv!=null){//当activity 不可见时,可以停止滚动,增加app性能,减少不必要的负荷

        actMainCv.stopCarousel();

}

}

当页面onResume时,继续滚动

@Override

protected void onResume() {

super.onResume();

if(actMainCv!=null){//当activity 可见时,开启滚动

        actMainCv.startCarousel();

}

}

也许有人会说,当界面销毁时候,没有对rxjava做处理,其实 我已经在CarouselView的onDetachedFromWindow() 方法中做了处理

/**

* 停止自动轮播

*/

public void stopCarousel() {

if (mDisposable !=null && !mDisposable.isDisposed()) {

mDisposable.dispose();

}

}

@Override

protected void onDetachedFromWindow() {

stopCarousel();

mDisposable=null;

if (mAdapter !=null) {

mAdapter.setOnItemClick(null);

}

super.onDetachedFromWindow();

}



view的滚动

有的时候,我们会看到需求,实现不同布局的滚动,并且可以禁止滑动,就可以

carouselView.setCarouselViewScroll(false);//true允许滑动、false禁止滑动

还有其它小属性就不介绍了,有兴趣的可以下载看看,有问题发我邮箱

CarouselView

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一章 白茗从小就知道漂亮女孩子的特权,几乎身边所有人都喜欢她,老师会叫她当班干部,学校有活动会叫她去表演节目,男...
    苏茗su阅读 364评论 0 0
  • 爱上你以后,全世界的古镇都失去了颜色!
    alion1109阅读 234评论 0 0
  • 冲凉完毕,彪子端详着镜子中自己日渐瘦削的身躯和日趋俊郎的脸庞,不禁洋洋得意,喃喃道:镜子啊镜子,你说我是不是个美男...
    半捧黄沙阅读 291评论 0 0
  • 人随境转,境随人转。前者是大于后者了,最起码我发现自己就是这个状态,容易起伏不定,有时能量高昂,有时情绪...
    李键成阅读 697评论 5 2
  • “烟花三月下扬州”,在这里,我们领略瘦西湖的美好风光;“奇花异卉满东篱, 姹紫嫣红百媚姿”,花儿的千姿百态更...
    陌乐羽曦阅读 1,184评论 0 0

友情链接更多精彩内容