Android:自定义视图的默认属性

Kar*_*uri 9 android attributes custom-controls attr

我有一个自定义视图,扩展了其中一个框架类.ViewAndroid中的大多数s都为它们定义了一些默认属性(例如Button可点击,由设置android:clickable="true").

如何为自定义视图提供应用程序范围的默认值?

Kar*_*uri 14

我这样解决了自己的问题:

res/values/attrs.xml:

<resources>
    <attr name="customViewStyle" type="reference" />
</resources>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

然后你所做的就是将清单中的主题设置为AppTheme.这也适用于使用标准小部件android:[widget]Style代替customViewStyleAppTheme的定义.

  • 这怎么会应用到你的视图?customViewStyle链接到View实现的哪个位置? (3认同)
  • @cottonBallPaws,以下内容为我指明了正确的方向:http://stackoverflow.com/a/31505624/5166250 (2认同)