如何为 android 中的样式的项目指定自定义包名称?
How to give custom package name for an item, of a style in android?
文档说,要定义的样式名称 属性,必要时带有包前缀(例如 android:textColor)。
<style name="ToolbarTitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">20sp</item>
</style>
但是我在attrs.xml
中有自定义样式
<attr name="switchStyle1" format="reference" />
<declare-styleable name="Switch">
</declare-styleable>
现在如何在我的自定义样式中使用它
<style name="AppThemeDark" parent="@android:style/Theme.DeviceDefault">
<item name=":switchStyle">@style/switch_dark</item>
</style>
如何为 android 风格的商品指定自定义包装名称?
就这么用:
<style name="AppThemeDark" parent="@android:style/Theme.DeviceDefault">
<item name="switchStyle1">@style/switch_dark</item>
</style>
如果您使用样式属性,不需要使用任何包前缀
你没有。前缀(正确地应该称为命名空间)是您自己设置的,通过添加到您的布局:
xmlns:app="http://schemas.android.com/apk/res-auto"
在上面的示例中,app
是您的命名空间。然后你在布局中使用它,即
<Foo app:switchStyle="@style/switch_dark" />
对于样式,在引用自定义属性时根本不使用名称空间:
<style name="AppThemeDark" parent="@android:style/Theme.DeviceDefault">
<item name="switchStyle">@style/switch_dark</item>
</style>
并且由于命名空间对于项目中的所有库都是全局的,因此使名称唯一以避免与其他库发生冲突很重要(这就是为什么它们中的大多数前缀属性名称,即:
<attr name="abc_switchStyle" format="reference" />
...
并使用:
<Foo app:abc_switchStyle="@style/switch_dark" />
PS:在您的代码中您创建了 switchStyle1
属性,但引用了 switchStyle
.
文档说,要定义的样式名称 属性,必要时带有包前缀(例如 android:textColor)。
<style name="ToolbarTitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">20sp</item>
</style>
但是我在attrs.xml
中有自定义样式 <attr name="switchStyle1" format="reference" />
<declare-styleable name="Switch">
</declare-styleable>
现在如何在我的自定义样式中使用它
<style name="AppThemeDark" parent="@android:style/Theme.DeviceDefault">
<item name=":switchStyle">@style/switch_dark</item>
</style>
如何为 android 风格的商品指定自定义包装名称?
就这么用:
<style name="AppThemeDark" parent="@android:style/Theme.DeviceDefault">
<item name="switchStyle1">@style/switch_dark</item>
</style>
如果您使用样式属性,不需要使用任何包前缀
你没有。前缀(正确地应该称为命名空间)是您自己设置的,通过添加到您的布局:
xmlns:app="http://schemas.android.com/apk/res-auto"
在上面的示例中,app
是您的命名空间。然后你在布局中使用它,即
<Foo app:switchStyle="@style/switch_dark" />
对于样式,在引用自定义属性时根本不使用名称空间:
<style name="AppThemeDark" parent="@android:style/Theme.DeviceDefault">
<item name="switchStyle">@style/switch_dark</item>
</style>
并且由于命名空间对于项目中的所有库都是全局的,因此使名称唯一以避免与其他库发生冲突很重要(这就是为什么它们中的大多数前缀属性名称,即:
<attr name="abc_switchStyle" format="reference" />
...
并使用:
<Foo app:abc_switchStyle="@style/switch_dark" />
PS:在您的代码中您创建了 switchStyle1
属性,但引用了 switchStyle
.