我有一个复合视图,它包含两个按钮和一个文本视图。我想在Android Studio布局编辑器中编辑这些子视图的属性,但我不能。它仅显示基本属性,但不显示自定义视图的属性。
Android Studio Layout Editor是否仅显示默认设置的有限数量的属性?是否可以从那里编辑我的自定义视图的属性,而无需手动编辑XML文件?
提前致谢!!
答案 0 :(得分:2)
如http://developer.android.com/training/custom-views/create-view.html#customattr中所述,您必须添加新的资源(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>
在您的视图中,您必须引用此新资源
<?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>
现在您应该在编辑器中看到属性。
答案 1 :(得分:1)
如果您使用自定义属性自定义View
,则需要使用自己的命名空间来设置自定义属性。
首先,在布局的根视图中设置名称空间,如下所示:
xmlns:sidespinner="http://schemas.android.com/apk/res-auto"
由于自定义属性名称是在当前项目或库项目的res/values/attrs.xml
中声明的,因此名称空间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的答案。
答案 2 :(得分:0)
更改
xmlns:sidespinner="http://schemas.android.com/tools"
到
xmlns:sidespinner="http://schemas.android.com/apk/res-auto"
android studio将显示自定义视图的自定义属性。
确保在res/values/attrs.xml