当前位置:   article > 正文

Android 视图绑定(ViewBinding)在Activity、Fragment和Adapter中的用法(java)_viewbinding adapter

viewbinding adapter

今天打开Butter Knife,发现作者说“This tool is now deprecated.  Please switch to view binding.”于是学习了一下这个新功能,在这里记录一下。

这个功能是用来代替findViewById的,使用之前首先要在模块的build.gradle中添加以下代码

  1. android {
  2. ...
  3. viewBinding {
  4. enabled = true
  5. }
  6. }

当某个模块启用视图绑定功能后,每个 XML 文件都会生成一个绑定类。activity_main.xml的绑定类就叫ActivityMainBinding,以此类推。组件的命名规则也是一样的,比如一个id为login_btn的按钮,调用的时候就是loginBtn。以下是ViewBinding在Activity、Fragment和RecyclerView.Adapter下的用法:

1. Activity

  1. ActivityMainBinding binding = ActivityMainBinding.inflate(LayoutInflater.from(this));
  2. setContentView(binding.getRoot()); //用来返回 LinearLayout 根视图
  3. binding.button.setOnClickListener(new View.OnClickListener() {
  4. @Override
  5. public void onClick(View v) {
  6. }
  7. });

2. Fragment

  1. private FragmentHomeBinding binding;
  2. @Nullable
  3. @Override
  4. public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  5. binding = FragmentHomeBinding.inflate(inflater, container, false);
  6. return binding.getRoot();
  7. }

3. RecyclerView.Adapter

  1. public static class ViewHolder extends RecyclerView.ViewHolder{
  2. public ViewHolder(ItemBinding itemBinding) {
  3. super(itemBinding.getRoot());
  4. }
  5. }
  6. @NonNull
  7. @Override
  8. public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  9. ItemBinding binding = ItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
  10. return new ViewHolder(binding);
  11. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/319878
推荐阅读
相关标签
  

闽ICP备14008679号