declare styleableAndroid中declare-styleable和style的不同

declare styleable  时间:2022-02-27  阅读:()

Android 中 declare-styleable 和 style 的不同

我们注意到上文中的CodeFont的定义,有没有发现item里面的name都是android开头?因为这些属性都是在android中预先设定好的,所以我们可以随意用。但是如果我们想用自己定义的属性名呢?这时候styleable的作用就出现了。我们只需要把attr的定义包围在styleable里面,这样定义的属性名就可以在style里面用。示例如下(示例来自上文给出的stackoverflow链接): <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="attrib1" format="string" /> <declare-styleable name="blahblah"> <attr name="attrib2" format="string" /> </declare-styleable> 在attrs.xml里面定义了两个attr,attrib1是普通的,attrib2包围在declare-styleable标签中; &.custom.ViewClass attrib1="xyz" attrib2="abc"/> 我们可以在layout/someactivity.xml里直接使用这些attr; <style name="customstyle" parent="@android:style/Widget.TextView"> <item name="attrib2">text value</item> <!-- customize other, standard attributes too: --> <item name="android:textColor">@color/white</item> </style> 在styles.xml中,我们就能用attrib2。(原网站这里写成了attrib1,怀疑是笔误。) 后来我验证过attrib1也能使用在style里面(我真的不确定,逻辑上应该不能才对,但是编译就是通过了。。。),那么这里就必须说明attr包不包含在styleable里面的另一个主要区别了,stackoverflow中是这么说的:

怎么使用declare-styleable标签?

为什么在Eclipse中敲这个【declare-styleable 】 标签是没有代码提示呢

Android中declare-styleable和style的不同

给出了一个例子我觉得很说明问题。 如果我们需要定义很多个这样的TextView: <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#00FF00" android:typeface="monospace" android:text="@string/hello" /> 为了便于修改,我们可以修改成这样: <TextView style="@style/CodeFont" android:text="@string/hello" /> ~如果你认可我的回答,请及时点击【采纳为满意回答】按钮 ~~手机提问的朋友在客户端右上角评价点【满意】即可。 ~你的采纳是我前进的动力 ~~O(∩_∩)O,记得好评和采纳,互相帮助,谢谢。

totyun:香港cn2 vps,5折优惠,$6/月,10Mbps带宽,不限流量,2G内存/2核/20g+50g

totyun,新公司,主要运作香港vps、日本vps业务,接入cn2网络,不限制流量!VPS基于KVM虚拟,采用系统盘和数据盘分离,从4G内存开始支持Windows系统...大家注意下,网络分“Premium China”、“Global”,由于站长尚未测试,所以也还不清楚情况,有喜欢吃螃蟹的尝试过不妨告诉下站长。官方网站:https://totyun.com一次性5折优惠码:X4QTYVNB3P...

HostHatch(15美元)大硬盘VPS,香港NVMe,美国、英国、荷兰、印度、挪威、澳大利亚

HostHatch在当地时间7月30日发布了一系列的促销套餐,涉及亚洲和欧美的多个地区机房,最低年付15美元起,一次买2年还能免费升级双倍资源。商家成立于2011年,提供基于KVM架构的VPS主机,数据中心包括中国香港、美国、英国、荷兰、印度、挪威、澳大利亚等国家的十几个地区机房。官方网站:https://hosthatch.com/NVMe VPS(香港/悉尼)1 CPU core (12.5%...

LayerStack$10.04/月(可选中国香港、日本、新加坡和洛杉矶)高性能AMD EPYC (霄龙)云服务器,

LayerStack(成立于2017年),当前正在9折促销旗下的云服务器,LayerStack的云服务器采用第 3 代 AMD EPYC™ (霄龙) 处理器,DDR4内存和企业级 PCIe Gen 4 NVMe SSD。数据中心可选中国香港、日本、新加坡和洛杉矶!其中中国香港、日本和新加坡分为国际线路和CN2线路,如果选择CN2线路,价格每月要+3.2美元,付款支持paypal,支付宝,信用卡等!...

declare styleable为你推荐
初始化磁盘如何将磁盘还原为“未初始化”状态?visio使用教程如何使用microsoft visio 2013色温图色温是什么意思?色温图表qsv视频格式转换器QSV格式的视频用什么格式转换器可以转换?qsv视频格式转换器手机qsv怎么转换成mp4格式转换器微信收费微信提现收费是怎么计算的 从什么时候开始收费廖华《学学孔子怎样当老师》读后感 南京廖华没有nvidia控制面板电脑没有nvidia显卡控制面板是怎么回事3d规则福利彩票3D的中奖规则微信备份通讯录在哪微信备份通讯录在哪
cn域名价格 申请免费域名 重庆服务器托管 mediafire 免费ftp空间 主机屋免费空间 realvnc 镇江联通宽带 彩虹ip softbank邮箱 服务器托管什么意思 美国堪萨斯 免费私人服务器 服务器是干什么用的 阿里云官方网站 防cc攻击 lamp兄弟连 注册阿里云邮箱 xuni 七牛云存储 更多