你如何获得“自定义视图”中的“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); }