ViewBinding

环境要求
Android Studio版本3.6及以上
Gradle 插件版本3.6.0及以上

视图绑定功能可按模块启用 要在某个模块中启用视图绑定,将 viewBinding 元素添加到其 build.gradle 文件中

android {
        ...
        viewBinding {
            enabled = true
        }
    }

在Activity中使用ViewBinding

  1. 首先声明private ActivityMainBinding binding;
  2. 修改onCreate()方法
		binding=ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());
  1. 直接在Activity中使用在布局文件中添加的控件
private void initView(){
        binding.btnBj.setOnClickListener(this);
        binding.btnGz.setOnClickListener(this);
        binding.btnMh.setOnClickListener(this);
        binding.btnSh.setOnClickListener(this);
    }

Fragment中使用ViewBinding

  1. 首先声明private FragmentTestBinding binding;
  2. 修改onCreateView方法
		binding=FragmentTestBinding.inflate(getLayoutInflater());
        binding.tvTest.setText("test");
        return binding.getRoot();
  1. 直接在Fragment中使用在布局文件中添加的控件

在Adapter中使用ViewBinding

public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> {
    private List<String> mList;
    public MainAdapter(List<String> list) {
        mList = list;
    }

    @NonNull
    @Override
    public MainAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        //View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_comment, parent, false);
        //ViewHolder holder = new ViewHolder(view);
        
        LayoutCommentBinding commentBinding = LayoutCommentBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
        ViewHolder holder = new ViewHolder(commentBinding);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull MainAdapter.ViewHolder holder, int position) {
        holder.mTextView.setText(mList.get(position));
    }

    @Override
    public int getItemCount() {
        return mList.size();
    }

    static class ViewHolder extends RecyclerView.ViewHolder {

        TextView mTextView;

        //public ViewHolder(@NonNull View itemView) {
        //    super(itemView);
        //    mTextView = itemView.findViewById(R.id.tv_include);
        //}

        //使用ViewBinding
        ViewHolder(@NonNull LayoutCommentBinding commentBinding) {
            super(commentBinding.getRoot());
            mTextView = commentBinding.tvInclude;
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值