下拉刷新PullToRefresh定制
admin
2023-07-31 09:43:53
0

  我们使用PullToRefresh库的时候,下拉的level-list以及刷新的帧动画都需要自己定制。如果每次都修改库非常麻烦,特别是一个项目有几个地方用到不同的样式,又不能多次关联同样的库。所以我们要自定义属性,在xml文件中就可以直接设置参数。


具体实现步骤:

1.在父类LoadingLayout中找到显示动画的ImageView控件,此控件自己定义,原来的控件隐藏。

 mLoadingImage = (ImageView) mInnerLayout.findViewById(R.id.img_loading);

2.在attrs文件中

   

       

       

       


3.// TODO在子类RotateLoadingLayout

refreshDrawable=attrs.getDrawable(R.styleable.PullToRefresh_ptrRefreshDrawable);

pullDrawable = attrs.getDrawable(R.styleable.PullToRefresh_ptrPullDrawable);

total = attrs.getInteger(R.styleable.PullToRefresh_ptrTotal, total);


4.// TODO 在onPullImpl方法中

int level = (int) (scaleOfLayout >= 1 ? total : scaleOfLayout * total);

if (pullDrawable == null)

       {

 mLoadingImage.setImageResource(R.drawable.homepage_pull_progresses);

       } else

      {

 mLoadingImage.setImageDrawable(pullDrawable);

       }

LevelListDrawable levelList = (LevelListDrawable) mLoadingImage.getDrawable();

levelList.setLevel(level);

5.// TODO 在refreshingImpl中

if (refreshDrawable == null)

{

mLoadingImage.setImageResource(R.drawable.homepage_loading_progressbar);


} else

{

mLoadingImage.setImageDrawable(refreshDrawable);

}

AnimationDrawable drawable = (AnimationDrawable) 6.mLoadingImage.getDrawable();

drawable.start();

// TODO 在resetImpl方法中

if (pullDrawable == null)

{

mLoadingImage.setImageResource(R.drawable.homepage_pull_progresses);

} else

{

mLoadingImage.setImageDrawable(pullDrawable);


}


7.在自己项目里关联库后

   

        android:id="@+id/pull_refresh_list"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        app:ptrPullDrawable="@drawable/homepage_pull_progresses"

        app:ptrRefreshDrawable="@drawable/homepage_loading_progressbar"

        app:ptrTotal="24" />




备注:参考附件上传的库里RotateLoadingLayout类和LoadingLayout类

附件:http://down.51cto.com/data/2366510

相关内容

热门资讯

中国试射导弹,日本一天发两份声... 中国试射潜射导弹的消息成为6日以来日本舆论关注的焦点之一。日本政府一天内连续发表两份声明。中方强调,...
特朗普挥舞“关税大棒”折腾一年... 美国总统特朗普去年4月对美国所有的贸易伙伴挑起关税战,可能相当于白折腾了一年。据美国彭博社报道,当地...
深圳加码青少年AI教育!龙华启... 深圳青少年AI教育再加码!美中AI产学研基地启幕仪式暨项目发布会近日在龙华区举行,融合科研创新、产业...
活力中国调研行丨地下方寸造“宇... 长久以来,人类探索宇宙主要依靠远距离天文观测,只能被动捕捉太空信号。在上海交通大学李政道研究所,科研...
千亿航天计划2027年开始部署... 千亿航天计划在2027年上半年“玄鸟-R”首飞任务开始,在晨昏轨道部署12500颗“阿莱耶识”算力卫...
实探深圳AI硬件企业:从百元玩... 图源:视觉中国 时代财经获悉,近日,逐际动力与阿里云联合打造的具身智能标准化工程底座 FluxVLA...
数字孪生能为工业仓储数智化升级... 当前国内智能制造、供应链物流领域正处于数智化转型的关键阶段,仓储作为物流链路的核心节点,其运营效率直...
【光明时评】让夏收跑出科技“加... 【光明时评】 作者:段蕾 翟卫欣(中国农业大学马克思主义学院副教授、中国农业大学信息与电气工程学院副...
解放军两年内两次试射导弹,意味... 7月6日12时01分,中国海军成功组织潜射战略导弹试射。2024年9月25日8时44分,中国人民解放...
新加坡巡回大使:中美关系稳定将... 据凤凰卫视报道,第八届新中论坛7月6日在新加坡举行。新加坡巡回大使陈庆珠认为,中美保持稳定关系,将为...