自定义 view 里面自定义属性是常常会用到的,大家必须做到熟练使用,但是奈何谁都有忘的时候,临时找别人的看着不爽,还是决定自己写一篇出来
attr 是 values 目录下的资源文件,新建项目是没有 attr 文件的,我们自己新建一个出来放到 values 里面就行,注意名字别写错
attr 中的自定义属性样式
Android 项目只有一个 attrxml 文件,所有的自定义属性都写在一起,为了方便 attr 中的自定义属性以所在 view 分组存放。其中 MyView 就是这个 view 的名字,以 <declare-styleable> 为标签,里面自然就是一个个自定义属性啦
细心的朋友可以发现,自定义 view 可以指定不同的数据类型,Android 中自定义属性支持的数据类型还是挺多的,详细见下表:
我这markdown 写表格bug ,所以直接用被人的图,我再补充一下:
按照下面这样写就性,enum 就能看出来这是枚举
window 会解析整个视图树并对象化,然后把每个 view 在 xml 中的属性发包成一个结合传递给相关的 view ,这个属性集合就是 TypedArray 了,我们在 view 的构造函数中可以获取 TypedArray
有一点要注意,自定义属性的 id 是系统自动生成的,id = 自定义属性组名 + "_" + 自定义属性名,例如:
MyView 是自定义属性组名,name 是自定义属性名
获取自定义参数
我更喜欢称attr 的引用空间为资源引用地址,这块其实很简单,基本用不着我们自己写,101 版本的 AS 工具直接就帮你写好了,但是具体的我们还是要知道的,这里可能能会出问题,明白原理我们才能处理问题
理论上 attr 的命名空间是 " ><img src="实际的地址" data-src="预览图的地址" />
通常自定义属性都是配合JS来使用的,单独的HTML与CSS技术,使用自定义属性,没有什么太大的作用和价值
Jquery获取select选中项 自定义属性的值的方法:
示例代码:
1、html代码:
<!DOCTYPE>
<html>
<head>
<meta >
#lili{font-weight:bold;color:red;}
</style>
</head>
<body>
<select id="mysel" title="选择提示">
<option>nba</option>
<option>fifa</option>
</select>
<script>
</script>
</body>
<html>
2、jquery代码获取自定义属性:
使用attr(name)获取title值:
<script>
alert($("#mysel")attr("title"));
</script>
3、显示结果:
如何获取自定义类的所有属性 以及属性的类型
本帖属于CocoaChina会员发表,转帖请写明来源和帖子地址
题目有点长
直接看代码
复制代码
@interface AppState : NSObject{
BOOL _passed;
int _int;
/
状态是否正常
/
BOOL isPassed;
/
用户数据
/
NSMutableDictionary userValues;
}
@property(nonatomic ,assign) float _float;
@property(nonatomic ,assign) double _double;
@property(nonatomic ,retain) NSDate _date;
@property(nonatomic ,assign) char _char;
@property(nonatomic ,assign) int _int;;
@property(nonatomic ,assign) BOOL _passed;
@property(nonatomic ,assign) BOOL
isPassed;
我通过
#import
<objc/runtimeh>
里面的这样的方式来获取 所有的属性名 以及属性类型
复制代码
unsigned int propertyCount = 0;
objc_property_t properties = class_copyPropertyList(klass,
&propertyCount);
for (unsigned int i = 0; i < propertyCount; ++i) {
objc_property_t property = properties[i];
const char name = property_getName(property);//获取属性名字
const char attributes = property_getAttributes(property);//获取属性类型
}
具体的输出如下所示
复制代码
输出类 state T@"AppState",&,N,Vstate
正常输出
_float Tf,N,V__float
_double Td,N,V__double
_date T@"NSDate",&,N,V__date
_char
Tc,N,V__char
前面正常获得了所需的属性名称
但是后面的这个串让我怎么获取类别呢??
PS:V__date 后面是
V_属性名
假设有一个标签h5, 我们给它添加了一个自定义属性值,(itemid是从动态添加的)
点击h5 标签,如何才能获取当前对应的自定义属性值呢?
想当然的我最开始这样写:
<h5 class="left t-title" @click='getDataId' :data-id="itemid"></h5><script>
methods: {
getDataId() { consolelog(thisdata-id);
}
},
</script>
显然,这样是拿不到 data-id的值的。。。。
应该这样做:
<h5 class="left t-title" @click='getDataId(itemid)' :data-id="itemid"></h5><script>
methods: {
getDataId(id) { consolelog(id);
}
},
</script>
以上就是关于自定义 view - 自定义属性全部的内容,包括:自定义 view - 自定义属性、可以给html标签自定义属性吗、Jquery怎么获取select选中项 自定义属性的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)