|
以launcher为例说明自定义控件的属性:
1、
在layout里面定义控件,如:
<com.android.launcher.Workspace android:id="@+id/workspace" android:layout_width="fill_parent" android:layout_height="fill_parent" launcher:defaultScreen="1"> <include android:id="@+id/cell1" layout="@layout/workspace_screen" /> <include android:id="@+id/cell2" layout="@layout/workspace_screen" /> <include android:id="@+id/cell3" layout="@layout/workspace_screen" /> </com.android.launcher.Workspace>
复制代码
2、
该控件workspace下面有一个属性是defaultScreen,这属性不是ViewGroup(workspace类是继承于ViewGroup)所定义的属性,那么我们可以在\res\values里面的attrs.xml里面定义
具体的定义方法如下:
<resources><declare-styleable name="Workspace"> <attr name="defaultScreen" format="integer" /> </declare-styleable></resources>
复制代码
3、
这样我们在Workspace的类里面就可以去除在layout里面对该属性的赋值,方法如下:
Int mDefaultScreen; TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0);mDefaultScreen = a.getInt(R.styleable.Workspace_defaultScreen, 1);a.recycle();
复制代码 |
|