自定义 view - 自定义属性

自定义 view - 自定义属性,第1张

自定义 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选中项 自定义属性的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9347912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存