美文网首页
butter knife

butter knife

作者: leap_ | 来源:发表于2019-03-28 11:27 被阅读0次

    介绍:

    Field and method binding for Android views which uses annotation processing to generate boilerplate code for you.大致的作用是利用注解帮助我们自动生成代码。

    butter_knife实际就是一个十分完善的安卓注解机制,我们借助这个机制可以省去好多类似findViewById,setOnclickListener的代码,使代码看上去更整洁,节省开发人员的时间。

    配置gradle

    1 添加dependency

    implementation'com.jakewharton:butterknife:10.1.0'

    annotationProcessor'com.jakewharton:butterknife-compiler:10.1.0'

    添加 plugin 到 buildgradle

    官网添加完的buildgradle样式

    classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'

    mavenCentral()

    google()

    3 添加plugin:

    apply plugin :  'com.android.library'

    apply plugin : 'com.jakewharton.butterknife'

    使用

    在使用前,我们再添加一个自动生成代码的插件:zelezny

    File->settings->Plugins

    添加进来以后就可以自动生成代码了。


    省略findViewById:

    1 在activity 中:现在layout中写好控件和id,然后到对应的Activity中右击鼠标:

    (或者alt+insert),鼠标的光标一定要在setContentView中的layout后面

    选择Generate ButterKnife inJections

    然后BK就会在activity中为我们自动生成各个控件的变量名并且绑定他们。(注意光标一定要放在layout的 id上面,不然是找不到Generate这个选项的)。

    2  在fragment中使用:由于fragment和activity的生命周期不同,需要进行解绑操作。实际使用插件操作和activity一样。

    不过我们要知道几个东西:BK的bind()会返回一个Unbinder对象,用于解绑操作。activity不需要解绑。

    3 在Adapter(viewHolder)中绑定:在Adapter的ViewHolder中使用,将ViewHolder加一个构造方法,在new ViewHolder的时候把view传递进去。使用ButterKnife.bind(this, view)进行绑定。

    这样就省去了在getView()中findid操作。无需取消绑定BK。

    附上getView()

    绑定资源:

    strings.xml

      1 绑定String:

    2 绑定String_array: 

    3 绑定color:

    绑定事件:

    单个事件绑定 多个事件绑定

    相关文章

      网友评论

          本文标题:butter knife

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