当前位置:聪少自媒体网 > 今日头条 > 正文

仿今日头条“关注”按钮的实现

2020-10-05 今日头条 聪少自媒体

首先来看下今日头条效果图:

再来看下我们实现的效果:

实现思路,为了复用以及封装性,所以决定使用自定义ViewGroup来实现,下面来看实现代码:

这里是初始化布局,以及监听事件的方法:

根据instanceOf方法来判别当前 找到控件是哪个,然后进行layout,这里有个坑,如果使用强转之后的View(例如:Button)来进行layout设置,是不起作用的,必须使用直接找到的ChildView来进行安放位置。

好了,其实这里开始还考虑到使用代码动态创建View然后layout上去,后来发现,这样的话需要定义许多的自定义属性,索性就不用代码动态添加了,哈哈,偷懒了!

有两种状态,一种是关注成功,一种是关注失败,这两个设定都是通过暴露方法之后在MainActivity中进行实现的。

下面来看代码:

这里有个问题,就是之前在写代码的时候,progressBar的setVisivility(View.GONE)没有任何效果,之后,我才发现烦了低级错误。。。

应该在UI线程刷新控件:

完整布局如下:

完整的代码如下:

MainActivity中的设定代码如下:

这里有个小小的问题,在我的安卓4.4手机上可以正常运行,但是在安卓7.0的手机上运行,展示不出来进度条,第一次写自定义控件的开源项目,希望大家多多包涵啊!

终于解决了,参考了点击打开链接文章,在布局文件里面,给Button套了一层布局:

代码里面获取的时候也有点问题,修改如下:

好开心啊!

源码地址:

MyStateButton

聪少爱学堂聪少
聪少爱学堂创始人,梅州市鹏鑫网络科技有限公司CEO,09年开始踏入互联网,10年互联网行业经验,资深自媒体人,自媒体优秀导师,咪挺微商团对营销引流顾问,业务包含:精准引流技术/代引流精准粉,专业小红书,知乎,微博代运营。
  • 38988文章总数
  • 1491135访问次数
  • 建站天数
  • 合作伙伴