您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 2浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ButterKnife介绍

顺其自然~ 发布时间:2020-04-10 21:51:49 ,浏览量:2

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: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() {
    
        }
    }

 

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0760s