![]() |
1
906
目前最好的文档是源文件。你可以看一下 here (attrs.xml) .
您可以在顶部定义属性
安
您可以使用
除了属性,还有
自定义视图的示例
在自定义视图上用XML定义自定义属性时,需要做一些事情。首先,必须声明一个名称空间才能找到属性。在根布局元素上执行此操作。通常只有
例子:
最后,要访问该自定义属性,通常在自定义视图的构造函数中这样做,如下所示。
结束。:) |
|
2
84
Qberticus的答案是好的,但缺少一个有用的细节。如果要在库中实现这些功能,请替换:
用:
否则,使用库的应用程序将有运行时错误。 |
![]() |
3
15
上面的答案非常详细地涵盖了所有事情,除了一些事情。
首先,如果没有样式,那么
其次,它不涉及如何处理plaurals资源(数量字符串)。这些不能用typedarray处理。这里是seekbarpreference中的一段代码,它根据首选项的值设置首选项的摘要,并格式化其值。如果该首选项的xml将android:summary设置为文本字符串或字符串resuce,则该首选项的值将被格式化为字符串(该字符串中应包含%d,以获取该值)。如果android:summary设置为plaurals资源,则用于格式化结果。
|
![]() |
4
4
传统的方法充满了样板代码和笨拙的资源处理。所以我做了 Spyglass framework . 为了演示它是如何工作的,下面是一个示例,演示如何创建一个显示字符串标题的自定义视图。 步骤1:创建自定义视图类。
步骤2:在
第3步:应用
现在您的类有了SpyGlass注释,SpyGlass框架将在编译时检测它并自动生成
步骤4:使用自定义视图中生成的类
就是这样。现在,当您从XML实例化类时,SpyGlass伙伴将解释属性并进行所需的方法调用。例如,如果我们膨胀下面的布局,那么
该框架不仅限于字符串资源,还具有许多不同的注释来处理其他资源类型。它还具有用于定义默认值的注释,以及在方法具有多个参数时传递占位符值的注释。 有关更多信息和示例,请查看Github回购。 |