attrs.xml 中 android:gravity 的格式正确吗?

2023-12-27

我有以下情况:

in styles.xml:

<style name="fooStyle">
    <item name="android:padding">?fooView.padding</item>
    <item name="android:background">?fooView.background</item>
    <item name="android:gravity">?fooView.gravity</item>
</style>

in attrs.xml:

<attr name="fooView.padding" format="dimension" />
<attr name="fooView.background" format="color|reference" />
<attr name="fooView.gravity" format="????"/>

in themes.xml:

<style name="fooViewTheme" parent="android:Theme">
    <item name="fooView.padding" >2dip</item>
    <item name="fooView.background" >#AA000000</item>
    <item name="fooView.gravity">right|bottom</item>
</style>

问题是我无法弄清楚该格式是什么fooView.gravity应该。我已经尝试过string, enum and flag但似乎都不起作用:我总是得到一个java.lang.NumberFormatException: unable to parse 'right|bottom' as integer一旦使用该主题的视图被加载。

所有答案均表示赞赏。


这些是 Android 使用的重力值。您可以在您的attrs.xml:

<resources>
    <declare-styleable name="MyCustomView">
        <attr name="gravity">
            <flag name="bottom" value="80" />
            <flag name="center" value="17" />
            <flag name="center_horizontal" value="1" />
            <flag name="center_vertical" value="16" />
            <flag name="clip_horizontal" value="8" />
            <flag name="clip_vertical" value="128" />
            <flag name="end" value="8388613" />
            <flag name="fill" value="119" />
            <flag name="fill_horizontal" value="7" />
            <flag name="fill_vertical" value="112" />
            <flag name="left" value="3" />
            <flag name="right" value="5" />
            <flag name="start" value="8388611" />
            <flag name="top" value="48" />
        </attr>
    </declare-styleable>
</resources>

在布局 XML 中,您可以这样使用它:

<MyCustomView
        custom:gravity="center|bottom"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

在 Java 代码中,您可以使用以下命令读取该值:

int gravity = a.getInt(R.styleable.MyCustomView_gravity, Gravity.NO_GRAVITY);

并直接将其设置为子视图,如果这对您有意义:

someSubView.setGravity(gravity);

您可以在来源中查找这些重力值android.view.Gravity or here https://developer.android.com/reference/android/R.attr.html#gravity

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

attrs.xml 中 android:gravity 的格式正确吗? 的相关文章

随机推荐

  • 设置为背景的 SVG 线性渐变在 Edge 和 IE 中不起作用

    我使用带有线性渐变颜色的 SVG 形状 background url imgUrlBase element svg 除了 Edge 和 IE 之外 在任何地方都可以正常工作 形状显示正确 但不是渐变 只有纯色 由于多种原因 简单使用 png
  • 通过 Instagram API 使用 php 获取照片和点赞

    使用 Instagram 时client idAPI 请求如下 https api instagram com v1 users https api instagram com v1 users 用户 ID media recent cli
  • 如何在 Tkinter 文本框中设置对齐方式

    Question 如何更改特定行的对齐方式ScrolledTextTkinter 中的小部件 我原来的错误的原因是什么 背景 我目前正在开发 Tkinter 文本框应用程序 并且正在寻找更改行对齐方式的方法 最终 我希望能够更改特定行左对齐
  • C++ 中数组的静态边界检查

    我需要一些关于我正在学习的编程语言课程中的问题的指导 我们需要想出一种在 C 中实现数组类的方法 以便静态检查对其元素的访问是否存在溢出 我们不会使用 C 11 静态断言 或任何其他黑盒解决方案 这是一个理论问题 而不是我出于编码目的所需的
  • 来自数组的 PHP 值,其中键位于另一个数组中

    由于某种原因 我正在为此苦苦挣扎 我有2个数组 第一个是名为 colsArray 的标准数组 如下所示 Array 0 gt fName 1 gt lName 2 gt city 第二个是一个名为 query data 的多维数组 如下所示
  • 网站性能测试:如何最好地估计计算机性能?

    我的网页中有一些浏览器密集型 CSS 和动画 我想确定用户是否拥有快速的 PC 以便我可以相应地缩放内容以提供最佳体验 我在用http Detectmobilebrowser com http detectmobilebrowser com
  • 使用 LSTM 教程代码来预测句子中的下一个单词?

    我一直在尝试理解示例代码https www tensorflow org tutorials recurrent https www tensorflow org tutorials recurrent你可以在以下位置找到https git
  • 关于创建列的SettingWithCopyWarning [重复]

    这个问题在这里已经有答案了 我正在尝试为我的数据创建一个名为 mv avg 的移动平均列 我收到一个无法修复的SettingWithCopyWarning 我可以抑制警告 但我无法弄清楚我在代码中的何处创建副本 并且我想利用最佳实践 我在下
  • 使用同一个 var 关键字初始化多个 JavaScript 变量有什么好处?

    当我阅读由显然非常擅长的人编写的干净的 javascript 代码时 我经常看到这种模式 var x some initialization method y something els z 相对于写有什么好处 var x some ini
  • 如何在 Angular2 中创建结构组件

    我创建了一个结构指令 可以添加或删除应用它的元素 现在 我希望该指令将内容添加到应用它的元素中 但使用指令似乎不可能 因为它没有自己的模板 也许我应该创建一个组件而不是指令 这个官方指南似乎暗示了这一点 https angular io d
  • Hashicorp Vault AppRole:角色 ID 和秘密 ID

    我有一个 Django 应用程序 我希望它能从 Vault 获取所有需要的秘密 据我了解我需要使用AppRole https www vaultproject io docs auth approle html为了这 我创建了一个角色 但后
  • Android 选择电子邮件意图

    我想从联系人列表中选择一封电子邮件 选择一个联系人还不够好 因为一个联系人可能有多个电子邮件地址 使用 API 演示 我成功地选择了联系人 电话号码 甚至地址 例子 Intent intent new Intent Intent ACTIO
  • 尽管有 RxJava,Android 中还是会出现 UI 阻塞

    我正在使用 RxJava 将网络访问移至 Android 中的单独线程 但我的 UI 仍然阻塞 我没有使用错误的可观察值 如下所示 Android RxJava 非阻塞 https stackoverflow com questions 2
  • XPath 选择带句点的节点

    我有一个 XML 文档 其中一些节点有 以他们的名义
  • 如何使用 anaconda python 启用代理服务器

    我们正在尝试通过代理服务器让 conda 安装 在 Windows 8 上 在防火墙后面工作 目前 我们可以在公司网络上使用 pip 在命令提示符下安装软件包 pip install pandas proxy http abc def xy
  • 更新与 InfluxDB 中的条件匹配的多个字段值

    在InfluxDB测量中 如何更新与查询匹配的点的字段值 这还是吗从 v1 6 开始不容易实现 https github com influxdata influxdb issues 2575 正如 GitHub 票证中的示例所建议的 实现
  • 不设置用户名和电子邮件即可提交

    我试着commit像这样 git commit author Paul Draper lt email protected cdn cgi l email protection gt m My commit message 但我得到 Ple
  • 在 ruby​​ 中以哈希形式返回结构数据

    没有一种方法可以将标准 ruby 结构的数据作为散列 成员 值对 返回 是否有正当理由 看到结构和哈希具有非常相似的用例 我很惊讶不存在这样的方法 还是我真的太盲目了 它很容易实现 我现在已经这样做了 但是标准库中缺乏这样的功能 让我想我可
  • 在扩展之间共享用户默认值

    创建一个 Today 小部件 我正在使用UserDefaults suiteName 保存一些数据 在我使用的主应用程序中UserDefaults standard 扩展程序无法读取 或者可以吗 这就是我使用suiteName 构造函数 用
  • attrs.xml 中 android:gravity 的格式正确吗?

    我有以下情况 in styles xml in attrs xml