android declare-styleable 和style,android – declare-styleable和style之间的区别

android declare-styleable 和style,android – declare-styleable和style之间的区别我认为将属性声明为不是风格,只有以下区别。在attrs.xml中,您可以直接在“资源”部分内或在“declare-styleable”中声明自定义属性:所以现在我们将“attrib1”定义为不风格,“attrib2”为风格。在layout/someactivity.xml中,我们可以直接使用这些属性(不需要命名空间):您可以在style.xml声明中使用“styleable”属性“attrib…

大家好,又见面了,我是你们的朋友全栈君。

我认为将属性声明为不是风格,只有以下区别。

在attrs.xml中,您可以直接在“资源”部分内或在“declare-styleable”中声明自定义属性:

所以现在我们将“attrib1”定义为不风格,“attrib2”为风格。

在layout / someactivity.xml中,我们可以直接使用这些属性(不需要命名空间):

您可以在style.xml声明中使用“styleable”属性“attrib2”。再次,这里不需要命名空间(即使在布局XML中使用了命名空间)。

text value

@color/white

然后您还可以设置每个样式的属性。

让我们假设我们这样做:我们将attrib1直接设置在XML中,我们将attrib2设置为一个样式。

在其他地方,我已经看到说明“blahblah”必须是使用这些属性的自定义视图类的名称,并且您需要使用命名空间来引用布局XML中的自定义属性。但似乎没有必要。

风格与非风格之间的区别似乎是:

>您可以在“style.xml”声明中使用样式属性。

>自定义类的构造函数需要以不同的方式读取样式和非样式的属性:使用getsStyledAttributes()的样式属性,以及具有attr.getAttributeValue()或类似属性的非风格属性。

在我在Web上看到的大多数教程和示例中,只使用了getsStyledAttributes()。但是,这不适用于直接在布局中声明的属性,而不使用样式。如果您在大多数教程中都显示了获取StyledAttributes()的方法,那么根本不会得到属性attrib1;你只会得到attrib2,因为它被宣布为风格。使用attr.getAttributeValue()的直接方法有效:

public CustomView(Context context, AttributeSet attrs) {

super(context, attrs);

String attrib1 = attrs.getAttributeValue(null, “attrib1”);

// do something with this value

}

由于我们没有使用命名空间来声明“attrib1”,所以我们作为getAttributeValue()中的namespace参数传递null。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159297.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于平面图到对偶图的转化

    关于平面图到对偶图的转化闲话哇对偶图真的是个好东西,昨天考NOI2010的时候前两道很快做完了,看着t3发呆了1个多小时,啥也想不出来.看着网格图突然想到听说bzoj1001狼抓兔子可以用对偶图求解.对偶图是啥我也不知道,听说把面看成点,连边后跑一边最短路就可以了.但是当时想到这个突然发现自己不会建对偶图,看时间还有一个多小时,于是建了8种可能的图,每一个都跑一遍spfa,发现有一个可以过样例,手

    2022年5月26日
    40
  • paceMaker_pacemaker怎么读

    paceMaker_pacemaker怎么读1. 简介 Pacemaker是一个集群资源管理者。他用资源级别的监测和恢复来保证集群服务(aka.资源)的最大可用性。它可以用你所擅长的基础组件(Corosync或者是Heartbeat)来实现通信和关系管理。​2. 特性 Pacemaker包含以下的关键特性:  监测并恢复节点和服务级别的故障​  存储无关,并不需要共享存储​  资源无关,任何能用脚本控制的资源

    2025年7月30日
    5
  • java数组定义长度_JAVA数组的定义

    java数组定义长度_JAVA数组的定义JAVA一维数组一,注意不可添加数组元素不可改变数组长度一个数组中的说有元素必须数据类型相同二,创建方法三种1直接添加元素类型[]数组名={元素,元素,元素,……};int[]arr={1,2,3,4};2先定义数组长度再添加元素类型[]数组名=new类型[长度];int[]arr=[2];arr[0]=1;arr[1]=2;与此方法类似的int[]arr;arr=newin…

    2022年5月29日
    51
  • idea激活码永久【注册码】

    idea激活码永久【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    41
  • 十二大相似图片搜索网站(以图搜图)

    十二大相似图片搜索网站(以图搜图)十二大相似图片搜索网站(以图搜图)如何凭着一张现有图片找出它的原始图片,或者是凭着一张小的缩略图找出原始大图?下面的搜索引擎可以帮你实现、以图找图、以图搜图。以图搜图是颠覆性的搜索方式,基于图片的搜索模式自09年以来在全球各大权威评选中,都被公认为未来几年互联网最有前途的创新应用。随着…

    2022年7月17日
    27
  • inputstream重复使用_简述读取文件的几种方法的区别

    inputstream重复使用_简述读取文件的几种方法的区别在上篇博客中我们已经知道了Java的InputStream是不能重复被读取的。 但是在有的场合中,我们需要重复利用InputStream的数据。 比如: 1.一个officeword文件流,我需要首先读取InputStream中的前一些字节来判断word文件的实际内容(word文件可以保存html,mht的内容)。然后再根据实际内容决定我要解析InputStream的方式。 

    2022年9月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号