Intereting Posts
Различные сборки Android для разных сред Похож на внутренний статический класс java, но, видимо, это не так (я не понимаю, как это возможно?) Что я должен использовать для «Distinguished Name» в нашем Keystore для Android Market? Метод onClick не работает Фрагмент onResume () и проблема backStack URL-адреса и проблемы с аудиопотоком. Устранение URL-адресов потоков Исключение исключения NoReadAccessException при экспорте ошибок Lint для генерации HTML-отчета в Android Studio Как отслеживать и анализировать приложение для Android? Наложение наложения (наклейка тренера). Нужна помощь в перемещении взгляда, основанного на позиции другого Мигает экран при использовании веб-просмотра со вспышкой Точечный свет libgdx не работает на сгенерированной сетке Где хранятся файлы данных моего Android-приложения? Как получить номер IMEI в PhoneGap? Как получить функции устройства Android с помощью диспетчера пакетов Observable.empty () вызывает java.util.NoSuchElementException: Последовательность не содержит элементов

Необходимые пользовательские атрибуты

Android: layout_width и android: layout_height – обязательные атрибуты, т. Е. Если вы не укажете их для макета, Android Studio сообщит мне: «Элемент x не имеет обязательного атрибута android: layout_height».

Я определяю некоторые пользовательские атрибуты в своих собственных классах, и я хотел бы потребовать, чтобы каждый, кто использует их в xml, указывал значения так же, как они должны были указывать layout_width и layout_height.

Как мне это сделать? Есть ли что-то, что я могу добавить в attrs.xml здесь:

<declare-styleable name="MyStyleable"> <attr name="myAttribute" format="float"/> </declare-styleable> 

Или, может быть, в style.xml здесь:

 <style name="MyStyle"> <item name="myAttribute">3</item> </style> 

AFAIK, в настоящее время attr s не имеют никаких атрибутов, чтобы отметить их обязательными. ( "layout_width" и т. П. – очень распространенные ошибки, проверка которых "layout_width" с SDK)

Однако вы можете исключить RuntimeException из своего пользовательского View если отсутствует атрибут (который вы можете определить, вызывая TypedArray.hasValue() ). TypedArray делает это в getLayoutDimension() .

Это именно то поведение, которое вы получаете, если компилируете приложение, в котором отсутствует "layout_width" где-нибудь, используя инструменты командной строки (т. Е. Нет Eclipse или Idea для обнаружения отсутствующего атрибута и предотвращения компиляции): вы запускаете приложение, и он выходит из строя с помощью RuntimeException Говоря, что вам не хватает атрибута.

Попробуйте взглянуть на эту ссылку . Существует информация о том, как определяются «wrap_content» и «match_parent». Может быть, это поможет.