我有一个扩展框架类之一的自定义视图。Android 中的大多数View
s 都为它们定义了一些默认属性(例如Button
可点击,由 设置android:clickable="true"
)。
如何为我的自定义视图提供应用程序范围的默认值?
我有一个扩展框架类之一的自定义视图。Android 中的大多数View
s 都为它们定义了一些默认属性(例如Button
可点击,由 设置android:clickable="true"
)。
如何为我的自定义视图提供应用程序范围的默认值?
我就这样解决了自己的问题:
res/values/attrs.xml:
<resources>
<attr name="customViewStyle" type="reference" />
</resources>
res/values/styles.xml:
<resources>
<style name="AppTheme" parent="@android:style/Theme.Light">
<item name="android:background">@drawable/bg_light</item>
<item name="customViewStyle">@style/CustomView</item>
</style>
<style name="CustomView">
<item name="android:clickable">true</item>
<item name="android:focusable">true</item>
<item name="android:focusableInTouchMode">true</item>
</style>
</resources>
然后,您只需将清单中的主题设置为 AppTheme。这也适用于在 AppTheme 定义中使用的标准小android:[widget]Style
部件customViewStyle
。
您还可以为此布局创建样式并设置您使用视图的样式。
来源:http: //developer.android.com/guide/topics/resources/style-resource.html
我认为您将需要覆盖带有AttributeSet参数的 View 构造函数,并构建您自己的修改后的 AttributeSet 以传递给超类构造函数。
编辑:更轻松,只需调用 View 子类构造函数setClickable
等即可将默认值更改为您想要的。