Android数据绑定设置alignParentTop

2023-12-29

我有以下布局(仅留下相关部分):

<RelativeLayout>
    <View android:layout_alignParentTop="true"/>
</RelativeLayout>

我尝试设置layout_alignParentTop带有声明变量的属性<data>块如下所示:

<data>
    <variable
        name="condition"
        type="Boolean"/>
</data>

<RelativeLayout>
    <View android:layout_alignParentTop="@{condition}"/>
</RelativeLayout>

然而,当尝试编译时,android studio 会说以下内容:

错误:无法找到参数类型为 java.lang.Boolean 的属性“android:layout_alignParentTop”的设置器。

我该如何设置layout_alignParentTop具有数据绑定变量的属性?


我必须对此进行一些挖掘,然后我发现了一个最近一期 https://code.google.com/p/android/issues/detail?id=180666在谷歌代码中。

引用一位项目成员的话:

我们明确不支持布局属性的数据绑定, 尽管从技术上讲您可以自己添加它们。问题是 这些很容易被试图动画化的人滥用。

要为您的应用程序实现这些,请创建一个绑定适配器:

@BindingAdapter("android:layout_width")
public static void setLayoutWidth(View view, int width) {
  LayoutParams layoutParams = view.getLayoutParams();
  layoutParams.width = width;
  view.setLayoutParams(layoutParams);
}

在你的情况下,你只需要稍微调整一下alignParentTop属性:

@BindingAdapter("android:layout_alignParentTop")
public static void setAlignParentTop(View view, boolean alignParentTop) {
   RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.WRAP_CONTENT,
      RelativeLayout.LayoutParams.WRAP_CONTENT);

   if(alignParentTop) {
      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
   }

   view.setLayoutParams(layoutParams);
}

这尚未经过测试,但应该足以让您走上正轨。

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

Android数据绑定设置alignParentTop 的相关文章

随机推荐

  • 网格调用时出错

    在尝试使用生成任何图时ggplot2 给出以下错误 Error in grid Call C textBounds as graphicsAnnot x label x x x y X11 font adobe helvetica s s
  • Flask - 将对象直接存储在会话中[重复]

    这个问题在这里已经有答案了 我想知道是否可以直接在 Flask 会话中存储对象 而不需要重写序列化器 为了使其正常工作 我需要在班级中实现任何功能吗 示例代码如下 这就是我想要的样子 然而 当你尝试执行它时 它会抛出一个错误TypeErro
  • Xen、QEMU 和 KVM 之间有什么区别?

    我知道Xen使用QEMU 而KVM是QEMU的一个分支 那么 KVM 包括 Xen 添加到 QEMU 中吗 是什么名字 Thanks QEMU 是一个功能强大的模拟器 这意味着它可以模拟多种处理器类型 Xen 使用 QEMUHVM http
  • Rails:application_helper.rb 中定义的方法无法被categories_controller.rb 识别

    更多新手问题 据我了解 如果我在应用程序帮助程序中定义一个方法 则整个应用程序代码都可以使用该方法 在我的应用程序助手中 我有 def primary user is admin if current user user login rol
  • 片段替换后,使用 RxJava2 + RxBinding 的 RecyclerView 项目单击不起作用

    我在 Fragment 中有一个 RecyclerView 项目点击是使用 RxJava2 处理的 如中所述这个答案 https stackoverflow com a 39962415 2341815 它在非片段中运行良好 private
  • 生成 3 到 6 之间的随机 int 值

    Microsoft SQL Server 是否可以生成从 Min 到 Max 的随机 int 值 3 9 示例 15 99 等 我知道 我可以从0到Max生成 但是如何增加Min边框呢 该查询生成从 1 到 6 的随机值 需要将其从 3 更
  • 如何对带有连接的 SQL 查询结果应用分页?

    我有一个连接 3 个表的 SQL 查询 其中一个只是连接另外两个表的多对多 我使用 Spring JDBC ResultSetExtractor 将 ResultSet 转换为我的对象 大致如下所示 class Customer priva
  • 如何附加到字符串中的所有网址?

    我应该如何附加到即将作为电子邮件发送的 html 字符串中所有 url 的末尾 我想像这样添加谷歌分析活动跟踪 utm source email utm medium email utm campaign product notify 99
  • elasticsearch中的源过滤、存储字段和文档值之间有什么区别?

    我已经阅读了文档源过滤 https www elastic co guide en elasticsearch reference 6 4 search request source filtering html 存储字段 https ww
  • 多维数组快速排序

    我需要根据第一个子数组中的值尽快对多维数组进行排序 该行被应用了数百万次 以下是我原来的路线 以及我改进其性能的尝试 但没有成功 据我所知 我的numpy方法仅对第一个子数组进行正确排序 而不对其余子数组进行正确排序 我做错了什么以及如何提
  • 在 params 中传递函数时,在导航状态中发现不可序列化的值

    我有两个屏幕 Screen A import React useState from react import Text View Button from react native const ViewA navigation gt con
  • 使用属性公开类似数组的数据结构

    通常将内部数据结构作为属性公开给您的业务类 但是 当我们必须公开类似数组的结构 如 List 规则 时 我们可能会遇到错误使用的问题 如选项 1 中所示 建议将此类数据结构的克隆公开为属性 以便内部结构不会受到干扰 有没有人对此有一个很好的
  • PHP Sql Server PDOException:找不到驱动程序

    我的服务器是Windows 2008服务器 PHP 版本 7 2 7 已安装并正在运行 Sql Server 11 64 位 已安装并正在运行 有几个 asp net 应用程序正在运行并已在使用该数据库 我从 Microsoft 网站下载了
  • 扩展坞显示或隐藏时的事件

    当 Dock 显示或隐藏时如何获取事件 如果扩展坞可见或未使用 Carbon 您会收到通知 我不知道有什么方法可以在可可中做到这一点 我没有测试过这个 它来自代码here http www cocoabuilder com archive
  • 无法在 Odoo 9 中显示选定的图像

    我在加载图像时遇到问题product template表单视图 当我上传新图像时 它正在上传并且displaying correctly in product kanban view 但在product form view它给了我错误无法显
  • 如何获取 WindowTimer 实现对象的“活动计时器列表”

    W3C 规范规定 每个实现 WindowTimers 接口的对象都有一个活动计时器列表 但我从未在任何地方见过如何访问该列表并检查它 这是否意味着它是特定于实现的并且不意味着可访问 或者您可以访问活动计时器列表 检查它以获得最高的 ID 因
  • “new System.Timers.ElapsedEventHandler(DoStuff)”调用不起作用

    我正在尝试在 C 中创建监视文件夹应用程序 该应用程序将在新文件到达时执行操作 由于监视的文件夹位于 GPFS 共享上 我无法使用 FileSystemWatcher 它在 NTFS 中对我来说工作得很好 所以我基于其他同事的应用程序sol
  • 在 Parse Cloud Code 更新 Stripe 模块

    事实证明 Parse Could Code 中的 Stripe 模块已过时且不会更新 Source https developers facebook com bugs 523104684492016 https developers fa
  • Sql Server XML类型列重复条目检测

    在 Sql Server 中 我使用 XML 类型列来存储消息 我不想存储重复的消息 我只会为每个用户发送几条消息 我当前正在查询表中的这些消息 将 XML 转换为 C 代码中的字符串 然后我将这些字符串与我要插入的字符串进行比较 不幸的是
  • Android数据绑定设置alignParentTop

    我有以下布局 仅留下相关部分