是的,有可能

让我们假设你的RelativeLayout声明(在xml中)具有用14sp定义的textSize:

android:textSize="14sp"

在您的自定义视图(属于AttributeSet的视图)的构造函数中,您可以从Android的命名空间中检索属性:

String xmlProvidedSize = attrs.getAttributeValue("http://schemas.android.com/apk/res/android", "textSize");

xmlProvidedSize的值将是这样的“14.0sp”,也可能是一点点的字符串编辑,你只需要提取数字。

声明自己的属性集的另一个选择将是很长的,但也是可能的。

所以,你有你的自定义视图和你的TextViews声明这样的权利:

public class MyCustomView extends RelativeLayout{

private TextView myTextView1;

private TextView myTextView2;

// rest of your class here

大…

现在,您还需要确保自定义视图会覆盖AttributeSet中的构造函数,如下所示:

public MyCustomView(Context context, AttributeSet attrs){

super(context, attrs);

init(attrs, context); //nice, clean method to instantiate your TextViews//

}

好的,我们现在看看init()方法:

private void init(AttributeSet attrs, Context context){

// do your other View related stuff here //

TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.MyCustomView);

int xmlProvidedText1Size = a.int(R.styleable.MyCustomView_text1Size);

int xmlProvidedText2Size = a.int(R.styleable.MyCustomView_text2Size);

myTextView1.setTextSize(xmlProvidedText1Size);

myTextView2.setTextSize(xmlProvidedText2Size);

// and other stuff here //

}

你可能想知道R.styleable.MyCustomView,R.styleable.MyCustomView_text1Size和R.styleable.MyCustomView_text2Size来自哪里?让我详细说明一下。

您必须在attrs.xml文件(在值目录下)声明属性名称,以便在何时可以使用自定义视图,从这些属性收集的值将被交给您的构造函数。

所以,让我们看看你如何声明这些自定义属性,就像你问过的那样:

这是我的整个attrs.xml

现在您可以在XML中设置TextViews的大小,但不能在Layout中声明命名空间,下面是如何:

xmlns:josh="http://schemas.android.com/apk/res-auto"

android:id="@+id/my_custom_view_id"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

josh:text1Size="15"

josh:text2Size="30"

/>

请注意我如何将命名空间声明为“josh”作为您的CustomView属性集中的第一行。

我希望这有助于乔希,

attribute java 从_java – 在AttributeSet中访问自定义组件的attrs相关推荐

  1. [vue] 如何在子组件中访问父组件的实例?

    [vue] 如何在子组件中访问父组件的实例? this.$parent拿到父组件实例 this.$children拿到子组件实例(数组) 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, ...

  2. delphi 自定义控件_Delphi中的自定义组件开发

    delphi 自定义控件 Components are essential elements of the Delphi environment. One of the most important ...

  3. 《九》微信小程序中的自定义组件

    开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护. 自定义组件:可复用的 WXML.WXSS.JS.JSON. beh ...

  4. 手把手教你实现小程序中的自定义组件

    之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 1.6.3 开始,官方对于 ...

  5. java requiredstringvalidator_如何访问自定义组件中的Validator.required

    我需要一些帮助 . 我正在尝试创建一个包装下拉值的自定义组件,并根据是否需要显示/隐藏默认的--Select--选项 . (我想稍后将其他自定义逻辑应用于此组件) 如何通过父级的被动形式设置我的自定义 ...

  6. ionic3 html调用摄像头,ionic3懒加载中使用自定义组件component

    问题: 由于使用了懒加载所以不能像之前一样直接引用component对象,在网上找了好多办法找了好多尝试终于知道怎么调用component了,记录一下使用自定义组件的详细过程 解决: 1. ionic ...

  7. Vue中关于自定义组件定义@click事件不生效的解决办法

    .native修饰符 -- 侦听组件根元素上的原生事件 当你给一个vue组件或者是自定义组件绑定事件的时候,要加上native,如果是普通的html元素,就不需要 比如:如果使用router-link ...

  8. java物品类_Java:类中的所有东西都是静态的 – 这是合理的吗?

    我只是想知道我所做的事情是不是很糟糕的设计. 我有一个ArrayList的东西.我需要这个列表永远存在.我只需要有一个这样的清单.我也有一些方法可以与这个列表进行交互.因此,我让一切都变得静止. 问题 ...

  9. java建树_JAVA实现通过中序遍历和后序遍历序列建树,并求树的高度,用层次遍历做验证...

    作为例子的树长这样: package bstpractice; import java.util.ArrayList; import java.util.Arrays; import java.uti ...

最新文章

  1. 点云深度学习的Pytorch框架
  2. Class.forName解析以及使用
  3. m进制数转换为十进制数
  4. 哈夫曼编解码(C语言)
  5. python sql逐行读取数据库数据,使用python读取数据库中的内容 把爬虫爬到的内容,存储在mysql数据库中...
  6. @JVM内存模型(运行时数据区)
  7. 如何搭建克隆系统服务器,FOG Project网络克隆系统安装和搭建
  8. 网易音乐链接html代码,爬取网易云音乐MP3链接脚本
  9. 阿铭Linux_传统IDC 部署网站学习笔记20190125
  10. 基于标记的分水岭分割算法
  11. win7升级ie到ie10后打不开的解决办法
  12. 阅读Disentangling and Unifying Graph Convolutions for Skeleton-Based Action Recognition(CVPR2020)
  13. 操作系统 假脱机(Spooling)系统
  14. 网络安全知识竞赛题库
  15. 简要分析光猫是如何通过运营商实现上网的
  16. EtherCAT总线通信Freerun、SM、DC三种同步模式分析
  17. HTML仿QQ音乐页面附源码(无框架)
  18. osmosis抽取PBF矢量数据,导出xml格式数据
  19. PHP在线支付多语言收款程序 PAYPAL收款程序
  20. 电脑换IP后,改虚拟机里的IP

热门文章

  1. 利用Pandas改变Excel的填充背景颜色,包含奇偶行等设置
  2. 国内外互联网地图常用的几种坐标系统:概念,原理和应用
  3. 2016年开发的供水管线设计工具进行升级
  4. udec采场开挖教程_UDEC模拟采动覆岩突水通道
  5. 永磁同步电机三相等效电路图_三相永磁同步电机之永磁体的等效
  6. hisi3559平台PCIE转USB调试
  7. Airsim动态 | 带你了解Airsim结构框架
  8. 北方民族大学计算机科学与技术硕士,2014年北方民族大学计算机科学与技术考研调剂信息(第二批)...
  9. 简网越过阅读,重新定义个性化
  10. elementui 时间选择控件 type=‘week‘ 时的参数配置以及传值问题