自定义view 读取 属性No resource identifier found for attribute
2016-11-02 17:19
447 查看
首先看一个错误
这个错误主要原因是
属性不存在(注意属性区分大小写)
其中xmlns必须写,
不写的话读取不到属性值,如下所示 error虽然编译成功,但是取不到值
还需要注意一个问题,如果命名空间采用老式写法
。。。。。
完整用法如下(注意查看一下顺序)
ta.getDimension 的第一个参数是下标
public static final int LinearLayoutWithLine_lineColor = 0;
public static final int LinearLayoutWithLine_paddingLineLeft = 1;
public static final int LinearLayoutWithLine_paddingLineTop = 2;
值按照declare-styleable定义的LinearLayoutWithLine中的顺序累加的
所以 取值也可以写成下列
error: No resource identifier found for attribute '' in package
这个错误主要原因是
属性不存在(注意属性区分大小写)
其中xmlns必须写,
<com.package.name.view.LinearLayoutWithLine xmlns:app="http://schemas.android.com/apk/res-auto" ...... app:paddingLineLeft="1dip"
不写的话读取不到属性值,如下所示 error虽然编译成功,但是取不到值
<com.package.name.view.LinearLayoutWithLine ...... paddingLineLeft="1dip"
还需要注意一个问题,如果命名空间采用老式写法
<com.package.name.view.LinearLayoutWithLine xmlns:app="http://schemas.android.com/apk/res/com.package.name" ...... app:paddingLineLeft="1dip"xmlns最后面是res/app的包名. 而不是v自定义的iew所在的package的路径
xmlns:app="http://schemas.android.com/apk/res/com.package.name.view"这么写是错误的
。。。。。
完整用法如下(注意查看一下顺序)
<declare-styleable name="LinearLayoutWithLine"> <!-- 线的颜色 --> <attr name="lineColor" format="color"/> <attr name="paddingLineLeft" format="dimension"/> <attr name="paddingLineTop" format="dimension"/> <attr name="paddingLineRight" format="dimension"/> <attr name="paddingLineBottom" format="dimension"/> </declare-styleable>
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.LinearLayoutWithLine); paddlingLineLeft = (int) ta.getDimension(R.styleable.LinearLayoutWithLine_paddingLineLeft, getPaddingLeft()); paddlingLineTop = (int) ta.getDimension(R.styleable.LinearLayoutWithLine_paddingLineTop, getPaddingTop()); paddlingLineRight = (int) ta.getDimension(R.styleable.LinearLayoutWithLine_paddingLineRight, getPaddingRight()); paddlingLineBottom = (int) ta.getDimension(R.styleable.LinearLayoutWithLine_paddingLineBottom, getPaddingBottom()); ta.recycle();
ta.getDimension 的第一个参数是下标
public static final int LinearLayoutWithLine_lineColor = 0;
public static final int LinearLayoutWithLine_paddingLineLeft = 1;
public static final int LinearLayoutWithLine_paddingLineTop = 2;
值按照declare-styleable定义的LinearLayoutWithLine中的顺序累加的
所以 取值也可以写成下列
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.LinearLayoutWithLine); paddlingLineLeft = (int) ta.getDimension(1, getPaddingLeft()); paddlingLineTop = (int) ta.getDimension(2, getPaddingTop()); paddlingLineRight = (int) ta.getDimension(3, getPaddingRight()); paddlingLineBottom = (int) ta.getDimension(4, getPaddingBottom()); ta.recycle();
相关文章推荐
- android自定义View时报 error: No resource identifier found for attribute ‘XXX’ in package 'XXX'
- 关于android自定义View时报error: No resource identifier found for attribute ‘XXX’ in package ‘
- 自定义View时 自定义属性报错Error:(8) No resource identifier found for attribute 'xxx' in package 'android'
- 自定义View时报error: No resource identifier found for attribute ‘xxx’ in package ‘
- 自定义view中错误:No resource identifier found for attribute X in package X
- 自定义view引起的错误:No resource identifier found for attribute *in package *
- 自定义view引起的错误:No resource identifier found for attribute *in package *
- 关于android自定义View时报error: No resource identifier found for attribute ‘XXX’ in package ‘
- 使用自定义属性报错 No resource identifier found for attribute 'widthFactor' in package
- 自定义view中错误:No resource identifier found for attribute X in package X
- 关于android自定义View时报error: No resource identifier found for attribute ‘XXX’ in package ‘
- 自定义View XML文件出现No resource identifier found for attribute 'xxx' in package 'xxx.xxx.xxx'错误
- Android自定义View:No resource identifier found for attribute ‘XXX’ in package ‘XXX‘
- 自定义view中错误:No resource identifier found for attribute X in package X
- 关于android自定义View时报error: No resource identifier found for attribute ‘XXX’ in package ‘(
- android自定义view[控件重用]时出现“No resource identifier found for attribute *** in package *** ”
- android自定义View时报 error: No resource identifier found for attribute ‘XXX’ in package 'XXX'
- Android自定义View报 No resource identifier found for attribute ‘’ in package ""
- NavigationView: No resource identifier found for attribute '***' in package