栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ViewBinding的简单使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ViewBinding的简单使用

ViewBinding的作用就是为了避免编写findViewById,和kotlin-android-extensions插件类似,项目工程模块的build.gradle中加入以下配置:

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

当ViewBinding启动后,studio会自动为每一个布局文件生成一个Binding类。

Binding类的命名规则是将布局文件按驼峰方式重命名后,再加上Binding作为结尾。如:activity_main.xml布局,那么与它对应的Binding类就是ActivityMainBinding。




    

如果不需要布局文件生成对应的Binding类,可以在根元素加入:



    ...
Activity中使用ViewBinding

在MainActivity中将TextView的文本设置为"你好",代码如下:

class MainActivity : AppCompatActivity() {

    private lateinit var mBinding : ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        mBinding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(mBinding.root)

        mBinding.helloTv.text = "你好"
    }
}

将根元素的实例root传入setContentView()函数中,这样activity_main.xml就可以在视图中显示出来,然后mBinding.helloTv获取extView控件的实例,并调用其setText()函数设置文本

Fragment中使用ViewBinding
class MainFragment : Fragment() {

    private var mBinding: FragmentMainBinding? = null

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        mBinding = FragmentMainBinding.inflate(layoutInflater, container, false)
        return mBinding?.root
    }

    override fun onDestroyView() {
        super.onDestroyView()
        mBinding = null
    }
}

ViewBinding在Fragment中使用和Activity中大同小异,唯一不同的是需要在onDestroyView()函数中对mBinding变量置空,保证mBinding变量的有效生命周期是在onCreateView()函数和onDestroyView()函数之间。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270426.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号