如何将视图绑定与包含的视图一起使用?

2023-12-26

View Binding 在 v3.6 中发布。

Docs: https://developer.android.com/topic/libraries/view-binding https://developer.android.com/topic/libraries/view-binding

我的问题是,有谁知道如何使用包含布局的视图绑定?

给定的布局包含另一个布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include
        android:id="@+id/my_header"
        layout="@layout/item_header"
        android:layout_width="match_parent"
        android:layout_height="100dp" />

</LinearLayout>

我正在尝试引用 item_header 布局内的项目。

binder.my_header (<-- this just returns back the view)
binder.root (<-- this just returns back the root view)

即使我将 id 添加到 item_header 的根,例如 id="@+id/parent_id" 并尝试引用它,我也会收到空指针异常

binder.parentId (<-- I have access to views inside of the item_header, however, I receive exceptions. Says that "parentId" cannot be found)

如何参考布局,item_header?


假设您问题中的布局是activity_main.xml。为其生成的视图绑定类是ActivityMainBinding。同样,对于item_header.xml,生成的视图绑定是ItemHeaderBinding.

如果我们假装那样item_header.xml has a TextView named @+id/foo,那么你最终会得到这块 Kotlin:

class MainActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val mainBinding = ActivityMainBinding.inflate(layoutInflater)

    setContentView(mainBinding.root)

    mainBinding.myHeader.foo.text = "this is a test"
  }
}

So, the ActivityMainBinding对象应该有一个属性android:id你给的<include>myHeader在这种情况下。那应该是一个ItemHeaderBinding,因为视图绑定似乎为设置嵌套绑定对象<include>. Since myHeader is an ItemHeaderBinding,然后您可以引用其上的小部件,就像直接充气一样ItemHeaderBinding你自己。

请注意,视图绑定似乎会转换lower_snake_case into lowerCamelCase, 所以my_headerID 变成myHeader就生成的代码而言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将视图绑定与包含的视图一起使用? 的相关文章

随机推荐

  • html5 href 下载属性不适用于 .pdf 文件

    我希望当用户单击表格元素中的图像时下载 pdf 文件 这就是我所拥有的 a href splosion CV pdf img src images downloadIcons download icon violet png width 3
  • Angular 5 删除特定的 DOM 元素

    我有一个小问题 我不知道该怎么做 我刚刚学习 Angular Typescript 我不知道如何删除一些 DOM 元素 我有一些自动生成的内容 它们具有特定的 CSS 类 不幸的是 这些对象是在其他地方生成的 我无法以任何方式配置它们 因此
  • 计算 R 中矩阵的常量

    如何在 R 中找到方阵 一般尺寸为 nxn 的常量 特别是 我试图找到独立但分布不同的群体的阶次统计的 pdf 其中包括计算矩阵的常量 该矩阵的元素是原始群体的 pdf 和 cdf thanks tl dr这是一个不平凡的计算问题 似乎没有
  • iOS 崩溃“NSInternalInconsistencyException”,原因:“语句仍处于活动状态”核心数据缓存相关?

    偶尔会看到这些在屏幕上的崩溃报告中弹出NSFetchedResultsController 并且不知道如何解决它们 我不相信我在任何地方使用线程 除非NSFetchedResults正在内部使用它们 NSInternalInconsiste
  • 如何在 R 中对向量中的连续日期进行分组?

    我下面有一个日期向量 dates lt c 2018 05 16 2018 07 20 2018 06 25 2018 06 26 2018 07 21 2018 07 22 2018 05 17 我想将连续的日期分组在一起 这可以吗 即我
  • 动态修改页面内容的 IE7 相对/绝对定位错误

    我想知道是否有人知道如何解决 IE7 中的以下问题
  • 在 Mac 上将 .xls 和 .xlsx 批量转换为 .txt(制表符分隔)

    我有大约 150 个 xls 和 xlsx 文件需要转换为制表符分隔 我尝试使用 automator 但只能一一完成 不过 这绝对比单独打开每个文件要快 我的脚本知识很少 所以我希望有一种尽可能轻松地完成此操作的方法 如果您准备使用 Pyt
  • Pywinauto type_keys() 省略字符串中的“%”

    当尝试输入字符串时 customer asked for 30 discount 通过使用到一个表单type keys 在 Pywinauto 0 6 5 中 它发送的输出是 customer asked for 30 discount 省
  • 有关在我的计算机中安装 PCL 的问题

    当我尝试安装 python pcl PCL 是用于像激光雷达数据一样演示的点云库 我按照上的说明进行操作https github com strawlab python pcl https github com strawlab pytho
  • 如何使用 Google Mock 模拟模板方法?

    我正在尝试模拟模板方法 这是包含要模拟的方法的类 class myClass public virtual myClass template
  • clang++:错误:链接器命令失败,退出代码 1 Qt Android

    无法构建 Qt 示例 在 Windows 中构建时出现错误 E android ndk r20 windows x86 64 android ndk r20 toolchains aarch64 linux android 4 9 preb
  • 动态端口和 AWS 应用程序负载均衡器和 ECS

    ELB 后面的 Docker 容器获取自动注册到 ELB 的动态端口 以便它们可以将流量重定向到它们 为了使 ELB 可以访问您的 Web 服务器 您必须打开来自安全组内的所有这些端口 1024 65535 有没有办法不必向一系列端口开放安
  • fpdf - 返回上一页

    我正在使用 fpdf 生成 pdf 发票 有些发票包含很多项目 详细信息需要进入第二页 但是 我需要在第一页上显示总数和其他详细信息 现在 如果我可以添加这样的新页面 pdf gt AddPage 但是 这会将所有内容放入第二页 无论此声明
  • 如何保护应用程序池免受会话序列化异常的影响?

    我们正在使用进程外会话提供程序 ScaleOut 对于 ASP NET 应用程序 我们注意到when未正确设置反序列化的对象会无意中进入会话最终导致整个进程终止 重现和处理这个场景是更有趣的地方 终止进程的异常是在会话状态中的任何 StaO
  • ruby Enumerable#first 与 #take

    ruby 枚举 数组有什么区别first n and take n 我依稀记得take与惰性评估有关 但我不知道如何使用它来做到这一点 并且在谷歌搜索或文档中找不到任何有用的东西 take 是一个很难通过谷歌搜索的方法名称 first n
  • tf.gradients 如何管理复杂的函数?

    我正在研究复值神经网络 对于复值神经网络 通常使用 Wirtinger 微积分 那么导数的定义是 考虑到由于刘维尔定理 函数是非全纯的 如果你看广濑彰的书 复值神经网络 进展与应用 第 4 章方程 4 9 定义 当然 偏导数也是使用维廷格微
  • WooCommerce - 为某些特定用户角色启用“零税率”税级

    在 wy WooCommerce 网站中 我将销售给经销商 AND 经销商 问题是经销商免税 因此我需要一个自定义函数来为某些客户角色启用零税率 如果 WooCommerce 自己做到这一点 那将是最佳选择 但事实并非如此 所以我的问题是
  • 如何获取大页面大小的值?

    我希望直接从我的 C 代码中获取大页面大小的值 而无需运行 bash 命令 从 bash 我可以做到这一点 grep pse proc cpuinfo gt dev null echo 2M huge page size are suppo
  • 有谷歌云存储模拟器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 出于测试目的 我想模拟 Cloud Storage 因为它会减慢测试速度 有谷歌云存储模拟器吗 谷歌有
  • 如何将视图绑定与包含的视图一起使用?

    View Binding 在 v3 6 中发布 Docs https developer android com topic libraries view binding https developer android com topic