ViewBinding的基本使用

news/2024/10/18 6:07:19/
  1. 在app目录下的build.gradle文件中开启viewBinding,开启方式跟DataBinding类似,其中apply plugin: 'kotlin-android-extensions' 是启用绑定机制,跟 ViewBinding 功能类似,都是kotlin自动的

build.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'  // 启用绑定机制android {compileSdkVersion 30buildToolsVersion "30.0.3"defaultConfig {applicationId "com.example.myviewbinding"minSdkVersion 26targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"// 启动ViewBindingviewBinding {enabled true}// 启动DataBinding/*dataBinding {enabled true}*/}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}}...

  通过gradle插件会生成对应的binding文件,比如布局xml文件名为activity_main.xml,对应生成的binding文件名为ActivityMainBinding

package com.example.myviewbindingimport androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.myviewbinding.databinding.ActivityMainBinding
// 绑定机制
import kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() {var vb : ActivityMainBinding ?= nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// 绑定机制/* setContentView(R.layout.activity_main)tv1.text = "AAA"tv2.text = "BBB"*/// ViewBinding 面向对象思想vb = ActivityMainBinding.inflate(layoutInflater)setContentView(vb!!.root)vb!!.tv1.text = "AAA"vb!!.tv2.text = "BBB"}
}

绑定机制的缺点:开发人员可能会在类中导入其他xml布局文件的控件属性,从而导致不易察觉的错误


http://www.ppmy.cn/news/1063056.html

相关文章

Shell基础_Shell概述及脚本执行方式

文章目录 1. Shell概述1.1 Shell是什么1.2 Shell的分类1.3 Linux支持的Shell1.4 总结 2. Shell脚本的执行方式2.1 echo输出命令2.2 第一个脚本2.3 脚本执行 1. Shell概述 1.1 Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行…

Flask 项目结构

前面我们了解了 Flask 框架的特性和一些用法,比如创建一个简单应用、做些页面,以及增加鉴权模块等,如果要将 Flask 用于实际项目开发,还需要了解一下 Flask 项目结构。 Flask 是一个轻量级的 Web 框架,扩展性强&#…

开发中常用的小脚本、工具

文章目录 1. mysql数据库相关1.1 查看数据库各表占用内存大小1.2 数据库字段脱敏脚本 1. mysql数据库相关 1.1 查看数据库各表占用内存大小 SELECT table_name, ROUND(((data_length index_length) / 1024 / 1024), 2) AS "Size (MB)" FROM information_schema.t…

牛妹爱数列

D-牛妹爱数列_牛客练习赛67 (nowcoder.com) 问题描述:给01数组,可以进行一下两种操作: 将位置上的数进行翻转将从1到当前位置的数进行翻转 求最小的翻转次数,使数列上的数全部变为0。 思路: 最优,满足…

docker harbor私有库

目录 一.Harbor介绍 二.Harbor的特性 三.Harbor的构成 四.Harbor构建Docker私有仓库 4.2在Server主机上部署Harbor服务(192.168.158.25) 4.2.1 这时候这边就可以去查看192.168.158.25网页 4.3此时可真机访问serverIP 4.4通过127.0.0.1来登陆和推送镜…

山西电力市场日前价格预测【2023-08-26】

日前价格预测 预测明日(2023-08-26)山西电力市场全天平均日前电价为287.61元/MWh。其中,最高日前电价为318.26元/MWh,预计出现在19: 30。最低日前电价为246.18元/MWh,预计出现在05: 15。 价差方向预测 1: 实…

网络渗透day03-Windows Server相关知识

1.在Windows Server中,以下哪个工具用于实时监视系统资源使用情况? A.Event Viewer B.Task Manager C.Performance Monitor D.Resource Monitor 正确答案:D 答案解析:Resource Monitor用于实时监视系统资源使用情况。 2.在Wi…

Linux学习-keepalived实现LVS高可用

Keepalived实现LVS高可用 环境准备 环境说明:LVS-DR模式 client1:eth0->192.168.88.10 lvs1:eth0->192.168.88.5 lvs2:eth0->192.168.88.6 web1:eth0->192.168.88.100 web2:eth0->192.16…