关于Butterknife 的一些使用

10 篇文章 0 订阅

今天学习了一下黄油刀的相关,出现了几个问题在这里记录一下。

1.在我按照github上的配置来导入相关包的时候出现了以下的报错信息

添加依赖过程:

在项目的project 的build.gredle 文件中的dependencies标签下添加。

classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.1'  //Butterknife

在App的 build.gradle 中添加如下代码:

apply plugin: 'com.jakewharton.butterknife'

最后在dependencies中添加:

compile 'com.jakewharton:butterknife:8.4.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.1'

仔细看下是正常的导包过程,按照这个过程走完后我就出现了最开始那个截图上的错误。。。

原因主要是因为library库上导包时有这个问题的出现,这也主要是组件化开发才会出现的情况。因为一般我们只需要直接进行第三步添加依赖就可以导入所需的黄油刀依赖(不需要组件化开发直接进入第三步)。

对于组件化开发,需要多个library库和module等相关操作,由于没有组件化项目进行实际的测试,我在删除了第二步所添加的插件之后成功导入了黄油刀,因此第二步应该是在library中进行添加(推测)。而且黄油刀的版本也会影响导包问题。在这个博客中对于导包的过程有仔细分析

https://blog.csdn.net/zyw0101/article/details/80399225

 

2.黄油刀的绑定

黄油刀在多个activity使用时每个活动中都要加入Butterknife.bind(this),这部分其实也可以统一化

由于每次都要在Activity中的onCreate绑定Activity,所以个人建议写一个BaseActivity完成绑定,子类继承即可 
注:ButterKnife.bind(this);绑定Activity 必须在setContentView之后: 

public abstract class BaseActivity extends Activity {  
    public abstract int getContentViewId();  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(getContentViewId());  
        ButterKnife.bind(this);  
        initAllMembersView(savedInstanceState);  
    }  

    protected abstract void initAllMembersView(Bundle savedInstanceState);  

    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        ButterKnife.unbind(this);//解除绑定,官方文档只对fragment做了解绑  
    }  
} 


至于一些基础的黄油刀怎么用相关的部分本篇不做介绍,网络上相关内容比较多。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值