当前位置: 首页 > 知识库问答 >
问题:

Kotlin的Android开发人员,被教程迷惑

丌官皓君
2023-03-14

我在kotlin代码实验室苦苦学习android的一个基础知识。我是一个初学者,在闭锁中学习编程是为了好玩。

这就是所讨论的教程

在本教程的开头,它说要获得对named_binding绑定的可为空的引用,然后使用

private val binding get()=_binding!!

要获得它的一个版本,我们可以在不使用?安全问题无效。目前一切正常。

但是,在步骤4中,它显示了以下代码:

重写fun onCreateView(Inflater:LayoutInflater,Container:ViewGroup?,SavedInstanceState:Bundle?):View?{
_binding=fragmentletterlistbinding.inflate(inflater,container,false)
val view=binding.rootreturn视图}

为什么我们在分配视图时引用_binding来膨胀视图,然后在下一行引用binding?

共有1个答案

琴正初
2023-03-14

为什么我们在分配视图时引用_binding来膨胀视图,然后在下一行引用binding?

这里要理解两个概念。

  1. _binding被认为是一个支持属性--即保存值的实际变量引用。在这种情况下,变量是可为空的类型。
  2. binding是一个标准属性--也就是说,它提供了对底层备份字段的访问。在本例中,它使用_binding作为支持属性,以便将_binding公开为非空。

因此--由于binding只是将_binding公开为非空值,所以必须首先设置_binding。这就是为什么它被分配了inflate调用的值。还要注意,_binding是一个var,这意味着它可以被重新赋值,而binding是一个val,这意味着它不能被重新赋值。因此在膨胀视图时尝试使用binding将无法编译。

最后,他们为什么使用binding来获取视图还不清楚。可能只是为了使用binding作为引用类绑定的单个属性的方便性/一致性。使用_binding?.root也可以很好地工作。

 类似资料:
  • 本文向大家介绍使用Kotlin开发Android应用教程,包括了使用Kotlin开发Android应用教程的使用技巧和注意事项,需要的朋友参考一下 使用Kotlin开发Android应用 1、Kotlin介绍  [Kotlin](https://kotlinlang.org/) Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者。Java是世界上使用

  • Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。

  • Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。

  • 本文向大家介绍Android NDK 开发教程,包括了Android NDK 开发教程的使用技巧和注意事项,需要的朋友参考一下 Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。 众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。

  • 开发人员协议 请务必认真阅读和理解本《360浏览器应用开放平台开发人员协议》(以下简称"协议")中规定的所有权利和限制。在您参与360浏览器应用开放平台并使用应用中心分发产品时,您首先应接受本《协议》条款,如果您不接受本协议或违反了协议,奇虎360有权采取以下措施:驳回应用审核、下线产品、删除帐户、拒绝访问等。 本《协议》是开发人员与北京奇虎科技有限公司(下称"奇虎360")之间关于利用360浏览

  • Project V Project V 由以下几部分组成: V2Ray 核心: v2ray.com/core V2Ray 手册: v2ray.com 周边项目: 详见客户端 V2Ray 项目组 V2Ray 项目组最初是为了 V2Ray 核心的开发而建立,现在已推广到整个 Project V 生态环境。我们欢迎你加入组织参与开发。当然你也选择可以使用自己的 V2Ray 之外的环境。 加入 V2Ray