Ответ 1
Пространство имен должно быть "http://schemas.android.com/apk/res/android
". android - это псевдоним, объявленный в вашем XML файле
Кажется, что существует множество "похожих" вопросов и ответов на этот вопрос, вокруг которых все относятся к тому, как получить пользовательский атрибут из AttributeSet
. То, что мне пока не удалось найти, - это получить тег пространства имен android:
:
<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
". 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);
}