Как настроить пользовательские пространства имен в файле макета в студии Android? - программирование
Подтвердить что ты не робот

Как настроить пользовательские пространства имен в файле макета в студии Android?

Я использую библиотеку dragsortlistview для моего проекта, которая требует использования пользовательского пространства имен в XML файле для его настройки.

mylayout.xml:

<com.mobeta.android.dslv.DragSortListView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dslv="http://schemas.android.com/apk/res-auto"
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="40dp"
    android:layout_marginRight="40dp"
    android:dividerHeight="10dp"
    android:divider="@color/light_grey"
    android:background="@color/light_grey"
    dslv:collapsed_height="2dp"
    dslv:drag_enabled="true"
    dslv:drag_handle_id="@drawable/drag_handle"
    dslv:drag_scroll_start="0.33"
    dslv:drag_start_mode="onMove"
    dslv:float_alpha="0.6"
    dslv:max_drag_scroll_speed="0.5"
    dslv:remove_enabled="true"
    dslv:remove_mode="flingRemove"
    dslv:slide_shuffle_speed="0.3"
    dslv:sort_enabled="true"
    dslv:track_drag_sort="false"
    dslv:use_default_controller="true"
    />

Когда я делаю этот проект, я получаю такие ошибки для каждого атрибута в пространстве имен dslv:

Gradle: No resource identifier found for attribute 'collapsed_height' in package 'net.mypackage'

Как я могу использовать собственное пространство имен в Android Studio?

4b9b3361

Ответ 1

res-auto использует имя текущего пакета, а не имя пакета библиотеки. В вашем случае это означает net.mypackage.

Если вы хотите использовать пространство имен для библиотеки, вам нужно использовать его имя пакета. Судя по имени класса, вы используете здесь библиотеку DSLV . Итак, вы захотите использовать:

xmlns:dslv="http://schemas.android.com/apk/res/com.mobeta.android.dslv"