视图绑定 - 如何获取包含的布局的绑定?

2024-04-09

在使用视图绑定时,我遇到了一些未记录的案例。

第一:如何获得包含的视图布局部分的绑定?主绑定只能看到主布局中定义的项目。

第二:如何获得合并布局部分的绑定。同样,主绑定只能看到主布局中的项目?


的情况下:

  1. 包含通用布局(不是合并节点),我们需要为包含的部分分配 ID,这样在绑定中我们将可以访问包含的子部分
<include
    android:id="@+id/your_id"
    layout="@layout/some_layout" />

在您的活动代码中这样:

private lateinit var exampleBinding: ActivityExampleBinding  //activity_example.xml layout

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    exampleBinding = ActivityExampleBinding.inflate(layoutInflater)
    setContentView(exampleBinding.root)
    //we will be able to access included layouts view like this
    val includedView: View = exampleBinding.yourId.idOfIncludedView
//[...]
}
  1. 在外部布局中包含合并块。我们无法向其添加 ID,因为合并块不是视图。 假设我们有这样的永恒合并布局(merge_layout.xm):
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="@layout/activity_example">

    <TextView
        android:id="@+id/some_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World" />
</merge>

要正确绑定此类合并布局,我们需要:

在您的活动代码中:

private lateinit var exampleBinding: ActivityExampleBinding  //activity_example.xml layout
private lateinit var mergeBinding: MergeLayoutBinding  //merge_layout.xml layout

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    exampleBinding = ActivityExampleBinding.inflate(layoutInflater)
    //we need to bind the root layout with our binder for external layout
    mergeBinding = MergeLayoutBinding.bind(exampleBinding.root)
    setContentView(exampleBinding.root)
    //we will be able to access included in merge layout views like this
    val mergedView: View = mergeBinding.someView
//[...]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

视图绑定 - 如何获取包含的布局的绑定? 的相关文章

随机推荐

  • 将随机范围从 1–5 扩大到 1–7

    给定一个产生 1 到 5 范围内的随机整数的函数 编写一个产生 1 到 7 范围内的随机整数的函数 这相当于 Adam Rosenfield 的解决方案 但对于某些读者来说可能更清楚一些 它假设 rand5 是一个返回 1 到 5 含 范围
  • 仅 React-Bootstrap 关闭按钮样式不起作用

    对于我与 React Bootstrap 一起使用的所有组件 所有样式都有效 除了模态 警报等中内置的关闭按钮 示例如下 警报组件 预期 我看到的警报组件 模态组件 预期 我看到的模态组件 我正在使用的构建在 React Bootstrap
  • 覆盖自定义 UITableViewCell

    我有一个习惯UITableViewCell我这样使用 AppTableCell cell tableView dequeueReusableCellWithIdentifier CellIdentifier if cell nil NSAr
  • 从动词列表中检索动词

    我有一个全是动词的字符串列表 我需要获取每个动词的词频 但我想将 想要 想要 想要 和 想要 等动词计为一个动词 形式上 动词 被定义为 4 个单词的集合 其形式为 X Xs Xed Xing 或形式为 X Xes Xed Xing 其中
  • Excel VBA - 工作表属性未按应有的方式分配字段

    VBA 新手 尝试使用 Sheet 属性 就像在 OOP 语言中使用 Getters 和 Setters 一样 我在 Sheet1 中有以下代码 为了清晰起见 进行了简化 Option Explicit Private bAllowChan
  • NSArray或NSMutableArray的removeAllObjects方法会释放内存吗?

    我需要知道 NSArray 或 NSMutableArray 的 removeAllObjects 方法是否释放内存 如果我的数组有 10000 个元素 我可以使用 array removeAllObjects 释放内存并用其他元素重新加载
  • 获取服务器端时间和客户端时间之间的差异并显示它[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 JavaScript 倒计时与服务器时间同步 https stackoverflow com questions 5357719 how to sync a javascript countd
  • 在 Glide 中查找并加载缓存的图像

    我是 glide 新手 想要将我的应用程序从 universalimageloader 迁移到 glide 我想将磁盘上的缓存图像转换为图像文件 并将其显示到 ImageView 中 当我使用universalimageloader时 我可
  • 100% CSS 布局,带页眉和页脚

    我正在尝试创建一个带有页眉和页脚 两者都有固定高度 以及它们之间的内容 div 的布局 该内容填充剩余空间 在 content div 中 我想要具有基于百分比值的高度的 div 以 content div 的 heihgt 作为父级 我不
  • 如何在 NS-3/ndnSIM 中模拟过程延迟?

    我想在发送兴趣包之前在消费者节点上添加一些进程延迟 我发现 Simulator Schedule 函数可以实现这个目的 但我不确定如何使用它 因为 ndnSIM 有自己的协议流程 如果我安排一个新事件 可能会导致一些意外的结果 或者是否有其
  • Swig:将Java中的字节数组传递给C

    我正在尝试创建 Java 实现 以便使用 Swig 将 byte 传递给 C Swig include typemaps i apply char STRING int LENGTH char buff int len inline typ
  • Java EE 5 和 Hibernate

    我可以将哪个版本的 Hibernate 与 Java EE 5 一起使用 我可以使用最新版本吗 See http www hibernate org http www hibernate org 它说最新的4 1 4版本可以与Java EE
  • 带列的数据透视表 pandas 中的百分比计算

    我有一个数据集 其中包含来自不同供应商 地点 日期和产品的多个销售登记册 数据集是这样的 local categoria fabricante tipo consistencia peso pacote ordem vendas kg AR
  • Spring:用于动态查询的通用 RowMapper

    我正在使用 SpringBatch 从 Oracle 读取数据并将其写入 ElasticSearch 我的代码对于静态查询效果很好 例子 select emp id emp name from employee table我有一个 RowM
  • 存储 std::shared_ptr 的向量,其中 Foo 是模板类

    我有一个基类 我将其作为模板 因为我想改变多个函数所需的类型 但我想从这些模板化基类派生 我想存储这些类的向量 我的想法是在层次结构中的所有内容之上创建一个非模板化基类 并使用双重调度来确定类型 我这样做是 正确的方式 吗 这是该场景的代码
  • 使用 sed 从文件中删除多字节字符

    我需要从文件中删除所有多字节字符 我不知道它们是什么 所以我需要覆盖整个范围 我可以使用 grep 找到它们 如下所示 grep P x80 xFF 我的文件 尝试用 sed 做类似的事情 但删除它们 Cheers 尝试一下 LANG C
  • 用于 Objective-C 开发的 Lint 检查工具 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 具有多个开发人员的大型项目通常会导致代码风格不一致 我正在寻找一个lint http en wikip
  • 如何识别 Visual Basic 中 MS Office 使用的显示语言(即工具栏/菜单)?

    我有一个宏 可以从 MS Excel 电子表格生成 MS Word 报告 我在报告中使用的样式在宏中以英语编码 我的一些团队将 MS Office 显示语言设置为法国 这并不奇怪 我在法国工作 因此 我的宏不起作用 因为样式标题 英文 用于
  • Python - 如果某个键不在一个列表中,则追加到另一个列表中

    这可能是一个相当简单的问题 但我还没有完全弄清楚 我有两个元组列表 List A a 0 033 b 0 030 c 0 020 d 0 010 e 0 005 List B a 0 057 b 0 065 w 0 060 x 0 040
  • 视图绑定 - 如何获取包含的布局的绑定?

    在使用视图绑定时 我遇到了一些未记录的案例 第一 如何获得包含的视图布局部分的绑定 主绑定只能看到主布局中定义的项目 第二 如何获得合并布局部分的绑定 同样 主绑定只能看到主布局中的项目 的情况下 包含通用布局 不是合并节点 我们需要为包含