android开发利器之BufferKnife的介绍和使用

介绍

  • butter knife是出自JakeWharton的一个开源库,它通过注解的方式来替代android中view的相关操作。减少大量的findViewById以及setOnClickListener代码,且对性能的影响较小.

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

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

  • 提示:

  • Butter Knife有多个版本,不同版本的初始化方法都不一样,且@Bind注解控件的后缀名也不同

使用

导包

android {
    
    
  ...
  // Butterknife requires Java 8.
  compileOptions {
    
    
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
    
    
  implementation 'com.jakewharton:butterknife:10.2.1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
}

插件安装

android studio 插件安装
在Plugins 里搜 ButterKnife Zelezny ,下载后,重启软件.

使用

在布局文件上
setContentView(R.layout.activity_buffer_knife)
加粗的斜体字体上,点击右键. -> 选择generate ->找到Buffer选项.
会弹出如下的对话框.
在这里插入图片描述
如果需要点击事件,记得给OnClick打上对勾即可.

activity中的样式:

public class BufferKnifeActivity extends AppCompatActivity {
    
    

    @BindView(R.id.title)
    TextView title;
    @BindView(R.id.btn)
    Button btn;
    @BindView(R.id.btn1)
    Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_buffer_knife);
        ButterKnife.bind(this);
    }


    @OnClick(R.id.btn)
    public void onViewClicked() {
    
    

    }


}

fragment中使用

public class BufferKnifeFragment extends Fragment {
    
    


    @BindView(R.id.title)
    TextView title;
    @BindView(R.id.btn)
    Button btn;

    Unbinder unbinder;

    public BufferKnifeFragment() {
    
    
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    
    
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_buffer_knife, container, false);
        unbinder = ButterKnife.bind(this, inflate);
        return inflate;
    }

    @OnClick(R.id.btn)
    public void onViewClicked() {
    
    
        
    }

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

猜你喜欢

转载自blog.csdn.net/shuai_ge_feng/article/details/105322420