Редактор макета студии Android показывает пользовательские свойства вида?
У меня сложный вид, состоящий из двух кнопок и одного текстового вида. Я хочу изменить свойства этих дочерних представлений в редакторе макетов Android Studio, но я не могу. Он показывает только основные свойства, но никаких свойств моего пользовательского представления.
Отображается ли в редакторе макетов Android Studio ограниченное количество свойств, заданных по умолчанию? Возможно ли отредактировать свойства моего пользовательского представления, без ручного редактирования файлов XML?
![Custom View]()
![Properties panel not showing custom view properties]()
Спасибо заранее!
Ответы
Ответ 1
Как описано в http://developer.android.com/training/custom-views/create-view.html#customattr, вы должны добавить новый ressource (res/values /attrs.xml).
<resources>
<declare-styleable name="PieChart">
<attr name="showText" format="boolean" />
<attr name="labelPosition" format="enum">
<enum name="left" value="0"/>
<enum name="right" value="1"/>
</attr>
</declare-styleable>
</resources>
В вашем представлении вам нужно ссылаться на этот новый ressource
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/com.example.customviews">
<com.example.customviews.charting.PieChart
custom:showText="true"
custom:labelPosition="left" />
</LinearLayout>
Теперь вы должны увидеть свойства в редакторе.
Ответ 2
изменить
xmlns:sidespinner="http://schemas.android.com/tools"
к
xmlns:sidespinner="http://schemas.android.com/apk/res-auto"
Android-студия покажет пользовательские атрибуты вашего пользовательского представления.
убедитесь, что вы определили пользовательские атрибуты в res/values/attrs.xml
Ответ 3
Если вы настроили View
с настраиваемыми атрибутами, вам нужно использовать собственное пространство имен, чтобы установить свои пользовательские атрибуты.
Сначала, установите пространство имен в корневом представлении вашего макета следующим образом:
xmlns:sidespinner="http://schemas.android.com/apk/res-auto"
Поскольку имена пользовательских атрибутов объявлены в вашем res/values/attrs.xml
вашего текущего проекта или проекта библиотеки, namespace sidespinner
сообщит aapt
для получения атрибутов из вашего текущего проекта или проекта библиотеки.
Второй, установите пользовательские атрибуты в пользовательском View
следующим образом:
<your-custom-view
sidespinner:boolean-attr="true"
sidespinner:integer-attr="5"
sidespinner:enum-attr="none"//your enum values
sidespinner:dimen-attr="10dp" />
Надеюсь, вы поняли это. Если вы хотите узнать, как настроить атрибуты, обратитесь к ответу @SteffenTimm.