美文网首页
在Github做的那些微小的工作(1)

在Github做的那些微小的工作(1)

作者: 小呀么小黄鸡 | 来源:发表于2017-03-31 14:52 被阅读26次

SnappingStepper

可以长按的撤销/恢复

发现的问题

  1. 控件的参数没有按规范加上标志性文字,导致了如下错误 attrs.xml problem
Error:(299) Attribute "rippleColor" has already been defined
Error:(318) Attribute "min" has already been defined
Error:(318) Attribute "max" has already been defined
Error:(318) Attribute "value" has already been defined
  1. 在控件运行时时常会有过头的情况
    问题:以作者的原图举例就是:
    本来想移动到数字110,但数字的加减仿佛有"惯性",没办法准确地停在那个数字。
    查看源代码,找到对应事件,在SnappingStepper.java中,控件继承了onTouch,并针对各个事件进行处理,而在MotionEvent.ACTION_CANCEL部分中有一个boolean变量stepTouch代表着"用户是否按着控件,判断是否还要继续更新数值和界面",而UpdateRunnable是一个负责执行updateUIRunnable
    解决办法:在原来执行updateUI的判断if (stepper != null)基础上加上了&& stepper.stepTouch的判断。
  2. 控件只有长按效果,没有单击效果
    解决办法:在MotionEvent.ACTION_DOWN中记录startTime ,在MotionEvent.ACTION_CANCEL部分中判断if (System.currentTimeMillis() - startTime < SEEMLIKECLICKDURATION)将这次操作视为点击行为,进行updateUI();

总结经验

可能是当初没有仔细找,只有这一个控件可供选择,距现在一年前开发,只有13次commits和2次issue提交,但作者绝对是为好作者,一是没人用没更新动力二是这种控件不常用,不受重视。这次的经历后我对第三方组件的选择再也不是满足需求就好,而是会选择成熟的项目。
成熟的标准:

  1. 作者会主动维护,持续commit,有issue/pullRequest的提交和关闭
  2. 在开发者中口碑不错/有文章讲解、拆解或是推荐
  3. README中说明完整
  4. 作者的勤勉程度
  5. stars数量较高(300-1000)以上

参考文章: stormzhang的如何选择开源项目?+如何正确使用开源项目?

JJSeachView

CircleSearchView

需要注意

想要应用这组动画需要结合合适的布局

本系列其他文章:
在Github做的那些微小的工作(序)
在Github做的那些微小的工作(2)
在Github做的那些微小的工作(3)

相关文章

网友评论

      本文标题:在Github做的那些微小的工作(1)

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