android viewBinding 使用

随着Butterknife的退役,Android开发者开始转向使用ViewBinding。在build.gradle中启用设置后,XML布局文件会自动生成对应的Binding类,如BaseTitleBinding。在Activity中,通过ViewBinding可以在onCreate中轻松获取控件,避免手动查找ID。此外,可以通过tools:viewBindingIgnore属性忽略不想生成Binding的XML文件。对于include标签,可以在其内部添加ID并相应地获取。本文简要介绍了ViewBinding的使用方法。

现在butterknife 不好用了,要使用viewBinding 了

刚开始和这个妹子打交道,还不是很熟悉,

先来一发

首先在buide.gradle 里面的android 下添加viewBinding{  enable= true}

 添加后写的layout xml 会自动生成layoutBinding 

比如 我写了一个base_title.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"

    android:id="@+id/layoutTitle"
    android:layout_height="@dimen/title_height">

    <ImageView
        android:id="@+id/iv_left_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="5dp"
        android:padding="10dp"
        android:src="@drawable/ic_right_back"></ImageView>

    <TextView
        android:id="@+id/tv_base_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="通用标题"
        android:textColor="@color/black"
        android:textSize="18sp" />

    <ImageView
        android:id="@+id/iv_right_setting"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="20dp"
        android:padding="10dp"
        android:src="@drawable/setting"
        android:visibility="gone"></ImageView>

    <TextView
        android:id="@+id/iv_right_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="20dp"
        android:padding="10dp"
        android:text="提交"
        android:textColor="@color/c_edit_hint"
        android:visibility="gone"></TextView>

    <View
        android:id="@+id/v_line"
        android:layout_width="match_parent"
        android:layout_height="0.7dp"
        android:layout_alignParentBottom="true"
        android:background="@color/c_normal_line"></View>
</RelativeLayout>

使用的时候会生成BaseTitleBinding 很方便,而且命名全统一帮你转好了,我们下次在xml 时还是直接使用驼峰这样的命名,

在activity 里是这样使用的

lateinit var titleBinding: BaseTitleBinding

在oncreate 的地方

titleBinding=BaseTitleBinding.inflate(inflater)

最近这样使用

 是不是很方便呀,直接点出就可以了,而且还不会出错,控件id 都帮你弄好了

是不是找控件妹妹起来就很方便了

viewBinding 会为每个xml 生成binding 文件,当然 ,你不想生成文件 的话可以添加tools:viewBindingIgnore="true" 这个来忽略它

 简单记录一下

如果是include 的话,在include 里添加id 

 然后这样去取得

 简单记录一下,希望能帮到你

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值