android - 可以在样式中完全限定可声明样式的属性(以避免命名冲突)吗?
问题描述
在下面的样式中,可以button_csl
用定义它的样式来完全限定,如
<item name="com.inc.app.LabeledButton:button_csl">@color/button_bar_csl_white</item>
例如,这样它就不会与另一个属性发生潜在冲突?
<!--ImageView-->
<style name="ButtonBar_LabeledButton_NavBar" parent="ButtonBar_LabeledButton">
<item name="com.inc.app:button_csl">@color/button_bar_csl_white</item>
</style>
该属性button_csl
在以下样式中定义
<declare-styleable name="LabeledButton">
<attr name="button_csl" format="reference"></attr>
</declare-styleable>
但是,如果声明了具有相同属性的新样式,如何解决冲突?
<declare-styleable name="NewStyleableButton">
<attr name="button_csl" format="reference"></attr>
</declare-styleable>
读取属性时这似乎不是问题,因为它们的范围仅限于特定的样式(即Resource.Styleable.LabeledButton_button_csl
)
private void ReadAttributes(Context context, IAttributeSet attributes)
{
Android.Content.Res.TypedArray typedArray = context.ObtainStyledAttributes(attributes, Resource.Styleable.LabeledButton);
_button_csl = typedArray.GetResourceId(Resource.Styleable.LabeledButton_button_csl, 0);
typedArray.Recycle();
}
但是,对于样式定义,似乎存在歧义
<!--ImageView-->
<style name="NewButtonStyle">
<item name="com.inc.app:button_csl">@color/button_bar_csl_white</item>
</style>
解决方案
推荐阅读
- django - 动态添加字段到 Django modelformset ManagementForm 数据丢失或被篡改
- javascript - 无法将 Button 值从子组件传递到父组件
- powershell - 如果使用 wmic 和 powershell 安装了特定程序,则查询远程机器
- java - 验证标签在另一个 Java 正则表达式中
- bitbucket - 如何使用 SCM Backup 恢复 Bitbucket Backup?
- python - 如何根据字符串中位置的值提取熊猫中的文本?
- php - 无法关闭 PDO 连接
- angular - 来自其他路线时,角度验证器不起作用
- sql - 如何使用replace语句替换1000行中的部分字段值
- c# - 在 C# 中使用 LINQ 对 IEnumerable 进行排序后出现问题