coolviewpager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里(代码片段)

huanhailiuxin huanhailiuxin     2022-11-21     131

关键词:

技术分享图片

这两天在GitHub上传了一个自定义ViewPager:CoolViewPager,具有以下功能特征:

  1. 支持水平及垂直方向循环滚动
  2. 支持自动滚动
  3. 支持自动滚动方向、滚动时间、间隔时间的设置
  4. 支持调用notifyDataSetChanged实时刷新界面
  5. 支持边缘效果颜色的设置
  6. 为垂直滚动提供了适宜的界面切换效果

技术分享图片

为什么写这个库

我们平时使用support包中的ViewPager,当adapter中数据变更后,调用notifyDataSetChanged并不能刷新界面,需要重新调用ViewPager.setAdapter方法;网上所有的自定义ViewPager,几乎都没有提供垂直方向的切换效果;很多时候,我们需要变更ViewPager滑动到边缘的渐变色以配合App特定场景.CoolViewPager可以很方便的解决上述问题.

使用步骤

在你的build.gradle中添加依赖

dependencies 
    implementation ‘com.huanhailiuxin.view:coolviewpager:1.0.0‘

在你的布局文件中引入CoolViewPager

<com.huanhailiuxin.coolviewpager.CoolViewPager
    android:id="@+id/vp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />

在Java代码中获取CoolViewPager,设置各种属性,为其设置Adapter

public class ActivityEdgeEffectColor extends BaseActivity 
    private CoolViewPager vp;
    
    ****
    CoolViewPager vp = findViewById(R.id.vp);
    vp.setScrollMode(CoolViewPager.ScrollMode.HORIZONTAL);
    vp.setAdapter(adapter);
    ****

属性:

<?xml version="1.0" encoding="utf-8"?>

<resources>
    <declare-styleable name="CoolViewPager">
        <attr name="cvp_scrollmode" format="enum">
            <enum name="horizontal" value="0" />
            <enum name="vertical" value="1" />
        </attr>
        <attr name="cvp_autoscroll" format="boolean" />
        <attr name="cvp_intervalinmillis" format="integer"/>
        <attr name="cvp_autoscrolldirection" format="enum">
            <enum name="forward" value="0" />
            <enum name="backward" value="1" />
        </attr>
        <attr name="cvp_infiniteloop" format="boolean" />
        <attr name="cvp_scrollduration" format="integer"/>
        <attr name="cvp_drawedgeeffect" format="boolean"/>
        <attr name="cvp_edgeeffectcolor" format="color"/>
    </declare-styleable>
</resources>

我们可以通过xml或Java代码的方式设置CoolViewPager实例的属性.

attribute name description
cvp_scrollmode 滚动方向
cvp_autoscroll 是否开启自动滚动
cvp_intervalinmillis 自动滚动时间间隔
cvp_autoscrolldirection 自动滚动方向
cvp_infiniteloop 是否循环滚动
cvp_scrollduration 自动滚动耗时
cvp_drawedgeeffect 是否绘制边缘效果
cvp_edgeeffectcolor 绘制的边缘效果颜色

通过XML布局文件

<com.huanhailiuxin.coolviewpager.CoolViewPager
    android:id="@+id/vp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:cvp_scrollmode="vertical"
    app:cvp_autoscroll="true"
    app:cvp_intervalinmillis="1000"
    app:cvp_autoscrolldirection="backward"
    app:cvp_infiniteloop="true"
    app:cvp_scrollduration="600"
    app:cvp_drawedgeeffect="true"
    app:cvp_edgeeffectcolor="@color/colorPrimary"
    />

通过Java代码

public class ActivityEdgeEffectColor extends BaseActivity 
    private CoolViewPager vp;
    
    private void initViewPager()
        vp = findViewById(R.id.vp);
        vp.setScrollMode(CoolViewPager.ScrollMode.VERTICAL);
        vp.setAutoScroll(true,1000);
        vp.setAutoScrollDirection(CoolViewPager.AutoScrollDirection.BACKWARD);
        vp.setInfiniteLoop(true);
        vp.setScrollDuration(true,600);
        vp.setDrawEdgeEffect(true);
        vp.setEdgeEffectColor(getResources().getColor(R.color.colorPrimary));
    

使用自定义 htaccess mod 重写时有效路由上的 Codeigniter 404

】使用自定义htaccessmod重写时有效路由上的Codeigniter404【英文标题】:Codeigniter404onvalidrouteswhenusingcustomhtaccessmodrewrites【发布时间】:2015-11-0303:58:31【问题描述】:我在使用自定义(有点奇怪)htaccess文件夹映射时遇到了codeignighter... 查看详情

自定义图像视图切割左右边缘半圆形

】自定义图像视图切割左右边缘半圆形【英文标题】:CustomImageViewCutLeftandRightEdgesSemiCircle【发布时间】:2020-02-1315:24:59【问题描述】:在开发自定义视图方面需要帮助。这是我需要发展的那种观点:试过一个办法,但它看起来不... 查看详情

如何在颤动中创建具有圆形边缘的自定义容器?

】如何在颤动中创建具有圆形边缘的自定义容器?【英文标题】:Howtocreateacustomcontainerwithroundededgesinflutter?【发布时间】:2020-07-2723:12:59【问题描述】:我正在尝试创建一个具有圆形边缘但无法使角变圆的自定义容器。我只想把... 查看详情

带有波纹动画的Android自定义视图边缘裁剪

】带有波纹动画的Android自定义视图边缘裁剪【英文标题】:AndroidCustomViewEdgeClippingwithrippleanimation【发布时间】:2017-07-0511:29:13【问题描述】:我正在使用自定义视图来获得棒棒糖前设备的涟漪效应。但是我还需要自定义容器形... 查看详情

ListView 的自定义过度滚动发光/边缘颜色?

】ListView的自定义过度滚动发光/边缘颜色?【英文标题】:Customoverscrollglow/edgecolorforListView?【发布时间】:2012-08-1914:05:59【问题描述】:我有一个ListView,还有一个自定义样式,基本上看起来就像Holo,但带有黄色而不是蓝色。当... 查看详情

调整大小时创建自定义窗口边框边缘消失

】调整大小时创建自定义窗口边框边缘消失【英文标题】:Creatingcustomwindowsborderedgedisapearswhenresizesmaller【发布时间】:2017-04-2600:02:50【问题描述】:和标题说的差不多。我正在尝试制作自己的边框,就像VisualStudio2015那样。一旦... 查看详情

为啥自定义面板不自动刷新

】为啥自定义面板不自动刷新【英文标题】:Whydoesthecustompanelnotrefreshingautomatically为什么自定义面板不自动刷新【发布时间】:2015-08-1710:32:37【问题描述】:我编写了一个自定义面板。代码如下:publicclassGameBoardPanel:PanelpublicGameBo... 查看详情

使用 jquery 的自定义滚动在边缘和 IE 上不起作用。?

】使用jquery的自定义滚动在边缘和IE上不起作用。?【英文标题】:CustomizedscrollwithjquerynotworkingonedgeandIE.?【发布时间】:2019-06-2904:01:32【问题描述】:有人可以帮我为什么这不会在边缘或IE上滚动/*!Copyright(c)2011PiotrRochala(http://roch... 查看详情

自定义 UIButton 的边缘在与它交互后看起来像素化

】自定义UIButton的边缘在与它交互后看起来像素化【英文标题】:CustomUIButton\'sedgeslookpixelatedafterinteractingwithit【发布时间】:2019-07-0114:32:59【问题描述】:我创建了一个带有圆角、渐变背景和阴影的自定义UIButton子类。按钮在启... 查看详情

自定义控件基础02_下拉刷新_侧拉菜单_自定义属性

...,纯粹自定义绘制②,在原生的基础上追加功能. 1,下拉刷新功能(继承ListView追加功能)(下拉刷新,加载更多,两个功能)1.1下拉刷新①创建一个类,继承ListView创建自定义适配器,设置数据额外:自定义控件会放到view包下 ②自定义... 查看详情

自定义刷新控件

1.上拉刷新定义一些属性:1.是否正在刷新,2.进度,3.scrollview,4.刷新操作block,5.子控件@property(nonatomic,strong)UIImageView*cloudImageView2;@property(nonatomic,strong)UIImageView*cloudImageView3;.....@property(nonatomic,assign)C 查看详情

UTableViewCell 子视图中的 drawRect 仅在选择单元格时有效

...【发布时间】:2016-02-1805:12:35【问题描述】:我有一个自定义的UIView,它在它的drawRect方法中画了几行。然后我创建一个常规的UITableViewCell并将我的自定义UIView添加到它。我的自定义UI 查看详情

r语言使用ggpubr包的ggbarplot函数可视化排序条形图(自定义填充色自定义条形边缘色自定义调色板条形图分组排序从小到大文本标签角度)

R语言使用ggpubr包的ggbarplot函数可视化排序条形图(自定义填充色、自定义条形边缘色、自定义调色板、条形图分组排序从小到大、文本标签角度)目录 查看详情

seaborn使用jointplot函数为散点图添加边缘图添加回归线为边缘直方图添加密度曲线自定义边缘直方图的色彩(changecolorofmarginalhistogramplot

seaborn使用jointplot函数为散点图添加边缘图、添加回归线、为边缘直方图添加密度曲线、自定义边缘直方图的色彩(ChangeColorofMarginalHistogramPlotwithSeabornjointplot)目录 查看详情

尝试使用 UIScrollView 创建自定义水平 UIPickerView - 如何像在 UIPickerView 中一样淡出边缘?

】尝试使用UIScrollView创建自定义水平UIPickerView-如何像在UIPickerView中一样淡出边缘?【英文标题】:TryingtocreateacustomhorizontalUIPickerViewusingUIScrollView-howdoIfadetheedgesoutlikeinUIPickerView?【发布时间】:2013-11-0513:30:20【问题描述】:在iOS7... 查看详情

jQuery slideToggle 页面刷新的反向效果

】jQueryslideToggle页面刷新的反向效果【英文标题】:jQueryslideTogglereverseeffectonpagerefresh【发布时间】:2021-10-3115:23:05【问题描述】:我使用jQueryslideToggle在Wordpress上制作了一个自定义菜单,以在悬停时切换下拉菜单。代码比较简单... 查看详情

pulltorrefresh自定义下拉刷新动画

首先,下载著名的刷新框架https://github.com/chrisbanes/Android-PullToRefresh,其中simple为demo,library和extras作为项目包导入到simple中一,定义刷新动画的layout在library下的com.handmark.pulltorefresh.library.internal包中的FlipLoadingLayout和Rota 查看详情

r语言使用ggpubr包的ggbarplot函数可视化排序条形图(自定义填充色自定义条形边缘色自定义调色板条形图全局排序从大到小文本标签角度)

R语言使用ggpubr包的ggbarplot函数可视化排序条形图(自定义填充色、自定义条形边缘色、自定义调色板、条形图全局排序从大到小、文本标签角度)目录 查看详情