android - 自定义 android 样式不允许整数?

标签 android android-alertdialog android-styles

我正在尝试创建自定义 android“样式”xml。虽然我看到的其他人似乎都在使用整数,但它甚至无法编译:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style  name="DialogStyle"
            parent="android:style/Theme.Dialog"
            >
        <item name="android:background">@color/ReliantCyan</item>
        <item name="android:radius">6</item>
        <item name="android:textColor">@color/White</item>
    </style>
</resources>

让我明白:

 .../dialogStyle.xml:7: error: Error: Integer types not allowed (at 'android:radius' with value '6').

我也尝试过 6pd6px 但后来它说不允许使用字符串。我在这里做错了什么?

(任何接受的答案都必须与 android 2.2 兼容。)


我现在也尝试过:

<dimen name="dRadius">10pd</dimen>

然后

<item name="android:radius">@dimen/dRadius</item>

但我得到了一个非常相似的错误:

 ... error: Error: String types not allowed (at 'dRadius' with value '10pd').

最佳答案

我无法准确地解释这种行为。指定<item name="android:radius">6dp</item>应该足够了。

但是,要解决此问题,我们可以添加维度资源(甚至在同一文件中,只要它位于 style 标记之外),然后通过 @dimen 使用该资源。 .

类似这样的事情:

<resources>
    <dimen name="testradius">6dp</dimen>
    <style ...>
        ...
        <item name="android:radius">@dimen/testradius</item>
        ...
    </style>
</resources>

确保将其指定为 6dp ( 6px 也应该起作用),而不是 66pd或其任何变体。

关于android - 自定义 android 样式不允许整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869771/

相关文章:

android - 替代布局

android - 如何处理自定义警报对话框的外部点击?

android - 是否可以从 styles.xml 文件中引用属性?

android - 找不到与给定名称匹配的资源 : attr 'windowBackground'

android - Firebase:数据库 '/google_app_measurement_local.db' 未打开

android - 在android中的 ListView 的一行中显示多个项目

android - 未显示 GCM 通知

android - 避免在按下后退按钮时关闭警报对话框?

Android:在 Android 2.3 中,对话框不是全屏或没有奇怪背景的 AlertDialog

Android:在 RecyclerView 中的项目之间添加分隔符