#android #android-studio #android-layout
#Android #android-studio #android-макет
Вопрос:
Я пытаюсь написать пользовательское поведение, но android Studio помечает пользовательские атрибуты как отсутствующие, т.е
attrs.xml
<declare-styleable name="VerticalDisplacement_Params">
<attr name="custom_Attr" format="boolean" />
</declare-styleable>
layout.xml
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
app:layout_behavior=".Behavior"
app:custom_Attr="true">
custom_Attr помечен как недопустимый префикс
Ответ №1:
Я подключил ваш пользовательский элемент к созданному мной пользовательскому представлению, и он работал нормально. Некоторые вещи, которые я бы предложил:
- Убедитесь, что ваш
<declare-stylable>
файл заключен в<resources>
тег:
<resources>
<declare-styleable name="VerticalDisplacement_Params">
<attr name="custom_Attr" format="boolean" />
</declare-styleable>
<resources>
- Что
app
пространство имен определяется какxmlns:app="http://schemas.android.com/apk/res-auto"
- У
declare-styleable
компонента должен бытьname
компонент. Если вы добавляете новый атрибут вContraintLayout
— вам придется расширитьContraintLayout
класс, но это сработало для меня:
<declare-styleable name="ConstraintLayout">
<attr name="custom_Attr" format="boolean" />
</declare-styleable>
- Ваш
attrs.xml
существует внутриvalues
папки
Комментарии:
1. Большое спасибо, это сработало идеально, расширение ConstraintLayout (или любого другого представления) было тем, что я искал…
2. Можете ли вы отметить это как ответ, если я ответил на ваш вопрос?