【Android开发--新手必看篇】依赖框架ButterKnife的使用

    技术2022-07-31  67

    Android笔记

    ​ ——ButterKnife 【若对该知识点有更多想了解的,欢迎私信博主~~】

    依赖框架:ButterKnife

    一:优势及作用
    强大的View绑定和Click事件处理功能,简化代码,提升开发效率方便的处理Adapter里的ViewHolder绑定问题运行时不会影响APP效率,使用配置方便代码清晰,可读性强
    二:ButterKnife的配置
    gradle版本低于3.0.0

    在工程的build.gradle中的dependencies添加

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

    在app的 build.gradle顶部中添加

    apply plugin: 'com.jakewharton.butterknife'

    在app的 build.gradle中dependencies中添加

    compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    gradle版本高于3.0.0(gradle升级导致很多插件无法使用)

    在工程的build.gradle中的dependencies添加

    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

    在app的build.gradle中dependencies中添加

    implementation 'com.jakewharton:butterknife:8.4.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
    三:使用

    手动书写

    public class MainActivity extends AppCompatActivity { //通过注解绑定控件 @BindView(R.id.btn) Button btn; //绑定多个 @BindViews({ R.id.first_name, R.id.middle_name, R.id.last_name }) List nameViews; //values文件里面的资源绑定 @BindString(R.string.title) String title; @BindDrawable(R.drawable.graphic) Drawable graphic @BindColor(R.color.red) int red; @BindDimen(R.dimen.spacer) float spacer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this);//绑定 } //通过注解绑定事件 @OnClick(R.id.btn) public void onViewClicked() { } //多个点击事件 @OnClick({R.id.btn_send,R.id.btn_close,R.id.btn_canle}) public void onViewClicked(View view) { switch (view.getId()){ case R.id.btn_send: break; case R.id.btn_close: break; case R.id.btn_canle: break; } } }
    注:
    ButterKnife.bind(this);必须在setContentView();之后调用;且父类绑定后,子类不需要再绑定
    在非Activity 类(eg:Fragment、ViewHold)中绑定: ButterKnife.bind(this,view);这里的this不能替换成getActivity()
    使用ButterKnife修饰的方法和控件,不能用private or static 修饰,否则会报错
    文档提示:Fragment中使用绑定时 ,需要再onDestroyView()中进行解绑
    四:工具
    下载插件Android Butterknife Zelezny圈选布局,alt+insert,自动添加代码
    参考文档
    https://www.jianshu.com/p/db412b48f4dbhttps://blog.csdn.net/weixin_45180903/article/details/91429802?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param
    Processed: 0.010, SQL: 9