Android开源项目-ButterKnife

作者: Tsy远 | 来源:发表于2016-07-19 11:23 被阅读567次

    ButterKnife是一个依赖注入开源框架,主要减轻绑定资源id的代码

    1 相关文档

    官方文档:
    http://jakewharton.github.io/butterknife/

    推荐的使用教程:
    http://leoray.leanote.com/post/butterknife

    2 如何使用

    2.1 引入开源库

    注意:最新的8.2.1版本不仅需要引入

    compile 'com.jakewharton:butterknife:8.2.1'
    

    完整的gradel内的引用应该是:

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        }
    }
    
    apply plugin: 'com.neenbedankt.android-apt'
    
    dependencies {
        ...
    
        compile 'com.jakewharton:butterknife:8.2.1'
        apt 'com.jakewharton:butterknife-compiler:8.2.1'
    }
    

    需要引入apt插件。

    2.2 使用例子

    ButterKnife的使用非常简单,可以减少以前findViewById的代码和监听事件的代码。

    原来:

        private Button btn;
        ...
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btn=(Button)findViewById(R.id.btn);
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this, "Btn Clicked", Toast.LENGTH_SHORT).show();
                }
            });
        }
    

    使用ButterKnife:

        @BindView(R.id.title) Button btn;
        ...
        
        @Override public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ButterKnife.bind(this);
            // TODO Use fields...
        }
    

    注意 Button btn 前面不可以有修饰private static

    除此之外,还可以在fragment、adapter等使用,还可以简化设置监听函数。更多用法在官方文档中描述很详细。

    3 总结

    1. 整个开源库很小,导出后比较只多了10k。非常适合使用减少activity中的代码,增加可读性
    2. 其实ButterKnife并不是真正的依赖注入框架,dagger才是,ButterKnife只是简化了资源绑定的过程
    3. 是个不错的使用在项目中的开源框架。强烈推荐!

    结尾

    更多文章关注我的公众号


    我的公众号

    相关文章

      网友评论

        本文标题:Android开源项目-ButterKnife

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