Android项目实战 ButterKnife

最近学到了一个实用的工具ButterKnife,可以简化编码,提高编码清晰度,下面会介绍。

ButterKnife

ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以省去这些步骤。使用ButterKnife对性能基本没有损失。下面介绍使用方法。

  1. 在Android Studio项目中配置使用ButterKnife,后面的版本号上下有差入。
 dependencies {
 	//Butterknife
 	implementation 'com.jakewharton:butterknife:10.0.0'
 	annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
} 	

2.实现一定要加入绑定,我这里将其封装在基类中,在基类中实现绑定功能。
基类: BaseActivity

  @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ButterKnife.bind(this);

基类: BaseFragement

	/**
     *  ButterKnife
     */
    private Unbinder unbinder;
    
	@Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        unbinder = ButterKnife.bind(this,root);
        return root;
    }

bind方法返回了一个Unbinder对象,在回调onDestroyView方法时,调用unbind方法释放资源。

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }

3.用法

	@BindView(R.id.bottomNavigationView)
    BottomNavigationView mNavigationView;
    @BindView(R.id.view_pager)
    ViewPager viewPager;
    @BindView(R.id.message)
    TextView text_message;
    @BindView(R.id.find_add)
    ImageView find_add;
    @BindView(R.id.message_add)
    ImageView message_add;

@BindString,@BindColor,@BindDrawable…绑定资源文件
获取一个字符串资源,需要调用res.getString方法;获取颜色资源,需要调用res.getColor方法;获取图片资源,需要调用res.getDrawable方法。使用ButterKnife框架,分别使用注解@BindString,@BindColor,@BindDrawable替换,注解属性值为资源的id。

    @BindString(R.string.app_name)
    String app_name;
 
    @BindDrawable(R.drawable.ic_launcher_background)
    Drawable d;
 
    @BindColor(R.color.red)
    int color_red;

@onClick设置控件的监听

    @OnClick({R.id.button, R.id.text1})
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                text1.setTextColor(Color.RED);
                break;
 
            case R.id.text1:
                text1.setTextColor(Color.BLUE);
                break;
            default:
                break;
        }
    }

ViewPager事件监听:@OnPageChange

@OnPageChange(R.id.viewpager)
public void onPageSelected(int position) {
        switch (position) {
            case 0:

                break;
            case 1:

                break;
        }
    }

当然 ButterKnife是Jake Wharton大神写开源框架。项目托管地址:
https://github.com/JakeWharton/butterknife。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android Studio的ButterKnife是一个用于简化Android开发中视图绑定的开源库。它可以帮助开发者通过注解方式快速地绑定视图资源,减少findViewById的使用,提高开发效率。 使用ButterKnife,首先需要在项目的build.gradle文件中添加依赖: ```groovy dependencies { implementation 'com.jakewharton:butterknife:10.2.1' annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' } ``` 然后,在需要使用ButterKnife的Activity或Fragment中,使用`@BindView`注解来绑定视图资源。 例如,在Activity中绑定一个TextView: ```java public class MainActivity extends AppCompatActivity { @BindView(R.id.textView) TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); // 视图绑定 // 使用textView textView.setText("Hello ButterKnife!"); } } ``` 在Fragment中使用类似的方式绑定视图资源。 需要注意的是,使用ButterKnife进行视图绑定时,必须在`setContentView()`之后调用`ButterKnife.bind(this)`来完成绑定。 除了`@BindView`注解外,ButterKnife还提供了其他注解,如`@OnClick`用于点击事件的绑定、`@Nullable`用于可为空的注解等。 值得一提的是,自从Android Studio 3.6版本起,Google推出了ViewBinding功能,它提供了类似ButterKnife的视图绑定功能,并且是官方支持的。如果使用最新版本的Android Studio,建议使用ViewBinding来代替ButterKnife

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十壹、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值