Butterknife

作者: Anwfly | 来源:发表于2019-06-10 15:18 被阅读0次

    ButterKnife介绍

    • ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项目集成起来也是特别方便,使用起来也是特别简单。

    • ButterKnife项目地址:https://github.com/JakeWharton/butterknife

    • ButterKnife的优势:
      1、强大的View绑定和Click事件处理功能,简化代码,提升开发效率
      2、方便的处理Adapter里的ViewHolder绑定问题
      3、运行时不会影响APP效率,使用配置方便
      4、代码清晰,可读性强

    ButterKnife使用

    • 依赖:
    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
    
    compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    

    其他版本:

    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    
    • 插件:Android ButterKnife Zelezny

    • 使用:获取控件、事件点击处理

    Activity使用:

        public class MainActivity extends AppCompatActivity {
        
            //获取控件
            @BindView(R.id.name)
            EditText name;
        
            @BindView(R.id.btn)
            Button btn;
            @BindView(R.id.txt)
            TextView txt;
        
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
        
                //绑定处理
                ButterKnife.bind(this);
            }
        
            //按钮点击事件处理
            @OnClick(R.id.btn)
            public void onViewClicked() {
        
                if (TextUtils.isEmpty(name.getText().toString().trim())){
                    return;
                }
        
                if (name.getText().toString().trim().length() < 6){
                    return;
                }
        
                txt.setText(name.getText());
            }
        }
    
    

    Fragment使用:

        public class BlankFragment extends Fragment {
        
        
            @BindView(R.id.txt)
            TextView txt;
            @BindView(R.id.btn)
            Button btn;
        
        
            Unbinder unbinder;
        
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                     Bundle savedInstanceState) {
                // Inflate the layout for this fragment
                View inflate = inflater.inflate(R.layout.fragment_blank, container, false);
                unbinder = ButterKnife.bind(this, inflate);
                return inflate;
            }
        
            @Override
            public void onDestroyView() {
                super.onDestroyView();
                unbinder.unbind();
            }
        
            @OnClick(R.id.btn)
            public void onViewClicked() {
        
            }
        }
    

    相关文章

      网友评论

        本文标题:Butterknife

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