Создание разных атрибутов с одинаковыми именами - PullRequest
0 голосов
/ 31 августа 2018

Я создаю класс, очень похожий на BottomSheetBehavior, и поэтому я хотел сохранить одинаковые имена атрибутов в своих attrs.xml, чтобы иметь согласованность, но Android Studio жалуется на это:

Ошибка компиляции ресурса Android. Вывод: C: \ Projects \ MyProject \ приложение \ сборка \ промежуточные \ инкрементный \ mergeDebugResources \ merged.dir \ значений \ values.xml: 1724: ошибка: повторяющееся значение для ресурса 'attr / поведение_peekHeight' с config ''. C: \ Projects \ MyProject \ приложение \ сборка \ промежуточные \ инкрементный \ mergeDebugResources \ merged.dir \ значений \ values.xml: 1724: ошибка: ресурс, ранее определенный здесь.

Есть ли способ использовать одно и то же имя атрибута для двух разных View классов?

Это является BottomSheetBehavior attrs.xml:

<resources>
    <declare-styleable name="BottomSheetBehavior_Layout">        
        <attr name="behavior_peekHeight" format="dimension">            
            <enum name="auto" value="-1"/>
        </attr>        
        <attr name="behavior_hideable" format="boolean"/>        
        <attr name="behavior_skipCollapsed" format="boolean"/>
        <attr name="behavior_fitToContents" format="boolean"/>
    </declare-styleable>
</resources>

Это файл attrs.xml, который я хотел MyBehavior:

<resources>
    <declare-styleable name="MyBehavior_Layout">        
        <attr name="behavior_peekHeight" format="dimension">            
            <enum name="auto" value="-1"/>
        </attr>        
        <attr name="behavior_hideable" format="boolean"/>        
        <attr name="behavior_skipCollapsed" format="boolean"/>
        <attr name="behavior_fitToContents" format="boolean"/>
    </declare-styleable>
</resources>

UPDATE:

Я попробовал то, что сказал pskink в комментариях, чтобы использовать <attr name="android:behavior_hideable" />:

<resources>
    <declare-styleable name="MyBehavior_Layout">
        <attr name="android:behavior_peekHeight" >              
            <enum name="auto" value="-1"/>
        </attr>
        <attr name="android:behavior_hideable" />
        <attr name="android:behavior_skipCollapsed" />
        <attr name="android:behavior_fitToContents" />
    </declare-styleable>
</resources>

Это все еще не работает, я получаю ошибку:

Ошибка привязки ресурса Android

Выход:

C: \ Projects \ приложение \ сборка \ промежуточных \ инкрементного \ mergeDebugResources \ merged.dir \ значений \ values.xml: 1724: ошибка: ресурс android: attr / поведение_peekВысота не найдена.

C: \ Projects \ приложение \ сборка \ промежуточных \ инкрементного \ mergeDebugResources \ merged.dir \ значений \ values.xml: 1729: ошибка: ресурс android: attr / поведенческий_открытый не найден.

C: \ Projects \ приложение \ сборка \ промежуточных \ инкрементного \ mergeDebugResources \ merged.dir \ значений \ values.xml: 1731: ошибка: ресурс android: attr / поведение_skip свернуто не найдено.

C: \ Projects \ приложение \ сборка \ промежуточных \ инкрементного \ mergeDebugResources \ merged.dir \ значений \ values.xml: 1733: ошибка: ресурс android: attr / поведение_fitToContents не найден. ошибка: не удалось связать ссылки.

...