Android studio布局编辑器是否显示自定义视图属性?

时间:2015-06-26 11:49:18

标签: java android android-custom-view

我有一个复合视图,它包含两个按钮和一个文本视图。我想在Android Studio布局编辑器中编辑这些子视图的属性,但我不能。它仅显示基本属性,但不显示自定义视图的属性。

Android Studio Layout Editor是否仅显示默认设置的有限数量的属性?是否可以从那里编辑我的自定义视图的属性,而无需手动编辑XML文件?

Custom View

Properties panel not showing custom view properties

提前致谢!!

3 个答案:

答案 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

中定义了自定义属性