你如何获得“自定义视图”中的“android:”标签值

似乎有很多“类似”的问题和答案分散在这里,都涉及到如何从一个AttributeSet获得一个自定义AttributeSet 。 我到目前为止还没有find的是如何获得一个android: namespace标签:

  <com.custom.view.StatusThumbnail android:id="@+id/statusThumbnailContainer" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="5dp" android:layout_weight="1"/> 

我想从这个自定义组件中撤回layout_height属性。 不幸的是,从我读的最近的我已经得到如何做到这一点是:

 public StatusThumbnail(Context context, AttributeSet attrs) { super(context, attrs); String height = attrs.getAttributeValue("android", "layout_height"); 

但是这返回null

这当然不是一件难得的事情吗?

命名空间应该是“ http://schemas.android.com/apk/res/android是在你的xml文件中声明的别名

首先在下面声明必要的属性:

水库\ attrs.xml

  <declare-styleable name="StatusThumbnail"> <attr name="statusThumbnailattr" format="string"/> </declare-styleable> 

那么在你的XML布局声明中使用相同的属性

 <com.custom.view.StatusThumbnail android:id="@+id/statusThumbnailContainer" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="5dp" statusThumbnailattr="some value" android:layout_weight="1"/> 

访问使用

 public StatusThumbnail(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a=context.obtainStyledAttributes(attrs,R.styleable.StatusThumbnail); this.mdColorDialogTitle=a.getString(R.styleable.StatusThumbnail_statusThumbnailattr); }