|
|
1
823
android开发者指南中有一个叫做 Building Custom Components . 不幸的是, the discussion of XML attributes 只包括在布局文件中声明控件,而不实际处理类初始化中的值。步骤如下:
1。在中声明属性
|
|
|
2
90
很好的参考。谢谢! 附加条款: 如果碰巧包含已为自定义视图声明自定义属性的库项目,则必须声明项目名称空间,而不是库名称空间。例如: 假设库具有包“com.example.library.customview”,而工作项目具有包“com.example.customview”,则: 将无法工作(显示错误“error:在包中找不到属性“newattr”的资源标识符 'com.example.library.customview'':
将工作:
|
|
|
3
26
除了大多数投票的答案。 获取StyledAttributes()
在使用android:xxx prdefined属性创建自定义视图时,我想添加一些关于obtainStyledAttributes()用法的单词。尤其是当我们使用文本外观时。
我们在这里能看到什么?
文档中未提及的内容-结果类型darray元素的顺序。
另一个问题是:“我们如何替换内部常量,并请求标准属性?”我们可以使用android.r.attr.*值。 因此,如果要在自定义视图中使用标准textAppearance属性并在构造函数中读取其值,可以通过以下方式修改textView中的代码:
定义customLabel的位置:
也许,我在某些方面弄错了,但是关于obtainStyledAttributes()的Android文档非常糟糕。 扩展标准ui组件同时,我们可以使用所有声明的属性扩展标准ui组件。 这种方法不太好,因为例如textview声明了很多属性。这是不可能的 在overriden onMeasure()和onDraw()中实现全部功能。 但我们可以牺牲自定义组件在理论上的广泛重用。说“我很清楚我将使用什么功能”,然后 不要和任何人共享代码。
然后我们可以实现构造函数
|
|
|
4
11
谷歌似乎已经更新了它的开发者页面,并在那里增加了各种培训。 其中一个用于创建自定义视图,可以找到 here |
|
|
5
5
非常感谢你的第一个回答。 至于我,我只有一个问题。当放大我的视野时,我发现了一个错误: java.lang.NoSuchMethodException:MyView(上下文,属性) 我通过创建一个新的构造函数解决了这个问题:
希望这会有帮助! |
|
6
0
您可以将任何布局文件包含在其他布局文件中,如下所示-
这里include标记中的布局文件是同一res文件夹中的其他.xml布局文件。 |
|
|
FranticFronk · Tkinter单选按钮在已选择时执行命令 1 年前 |
|
|
Kumkuatte · 如何将UI元素对齐到Unity中的左侧位置 1 年前 |
|
|
Calax · GUI不显示所有组件(C++) 1 年前 |
|
|
trassert · python flet容器 1 年前 |
|
|
zadisk8 · 带有Q拆分器和多级选项卡的PyQt5 1 年前 |
|
|
Patrick Visi · Zitadel日常创建服务用户 1 年前 |