Плагин Eclipse Android не перечисляет атрибуты с автозаполнением для настраиваемого компонента
В общем, подключаемый модуль Eclipse Android работает так, как ожидалось, с автозаполнением. Однако он не работает для настраиваемого элемента управления, который я написал. В принципе, полный список авто пуст, кроме параметров пространства имен по умолчанию.
Элемент управления наследуется от виджета Button и добавляет дополнительный текст. У меня есть несколько дополнительных атрибутов, которые я использую как таковые:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="SubTextButton"
<attr name="sub_text" format="string" />
<attr name="sub_text_size" format="float" />
<attr name="sub_text_color" format="color" />
</declare-styleable>
</resources>
в противном случае он использует все стандартные атрибуты виджета Button.
В файле макета укажите пространство имен:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.mycompany"
...
и я использую элемент управления:
<com.mycompany.SubTextButton
android:layout_width="@dimen/status_bar_button_w"
android:layout_height="@dimen/status_bar_button_h"
android:layout_alignParentRight="true"
android:background="@drawable/button_bg"
android:text="HCD"
android:textColor="@color/static_text"
android:textSize="@dimen/font_size_standard"
app:sub_text="SET"
app:sub_text_size="12.0"
/>
Все работает отлично, но пользователи не имеют преимущества автозаполнения, чтобы узнать, какие атрибуты доступны. В идеале я бы хотел увидеть унаследованные атрибуты Button
, а также пользовательские атрибуты, которые я определил.
Любые идеи?
Ответы
Ответ 1
Это тоже не работает для меня, на Eclipse helios с ADT v0.9.7
Однако это может быть возможно (благодаря файлу resources
xml и интроспекции родительского класса).
У меня был (более ожидаемый) взгляд в исходном коде ADT (я люблю open-source), и я думаю, что он должен работать. Метод computeAttributeProposals(...)
из AndroidContentAssist
читает атрибуты в ElementDescriptor
, и кажется, что они должны быть правильно инициализированы для пользовательских элементов управления благодаря CustomViewDescriptorService
Ответ 2
Я обнаружил, что закрытие всех представлений свойств и повторное открытие заставили показать мои пользовательские атрибуты