【问题标题】:Theming class extends View (Button) with AppCompat主题类使用 AppCompat 扩展视图(按钮)
【发布时间】:2016-04-27 09:23:38
【问题描述】:

我已经在我的 XML 中声明了Button:

<Button
    android:id="@+id/custom_id"
    android:theme="@style/BlueButtonTheme"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:text="@string/custom_string"/>

最重要的一行是使用BlueButtonTheme进行样式设置:

<style name="BlueButtonTheme" parent="AppTheme">
    <item name="android:buttonStyle">@style/BlueButtonStyle</item>
    <item name="buttonStyle">@style/BlueButtonStyle</item>

    <item name="colorAccent">@color/blue_dark</item>
    <item name="colorControlActivated">@color/blue_dark</item>
    <item name="colorControlHighlight">@color/blue_dark</item>
    <item name="colorButtonNormal">@color/blue</item>

    <item name="android:colorAccent">@color/blue_dark</item>
    <item name="android:colorControlActivated">@color/blue_dark</item>
    <item name="android:colorControlHighlight">@color/blue_dark</item>
    <item name="android:colorButtonNormal">@color/blue</item>

    <item name="android:textColor">@color/white</item>
</style>

<style name="BlueButtonStyle" parent="Widget.AppCompat.Button.Colored">
    <item name="colorAccent">@color/blue_dark</item>
    <item name="colorControlActivated">@color/blue_dark</item>
    <item name="colorControlHighlight">@color/blue_dark</item>
    <item name="colorButtonNormal">@color/blue</item>

    <item name="android:colorAccent">@color/blue_dark</item>
    <item name="android:colorControlActivated">@color/blue_dark</item>
    <item name="android:colorControlHighlight">@color/blue_dark</item>
    <item name="android:colorButtonNormal">@color/blue</item>

    <item name="android:textColor">@color/white</item>
</style>

并且Button 在所有操作系统版本中都是蓝色的,很好...现在我想创建自定义MyButton extends Button,但是当我在 XML 中设置时:

<com.package.name.MyButton
    android:id="@+id/custom_id"
    android:theme="@style/BlueButtonTheme"
    ...

小部件将保持灰色,例如Android 4.1(物理测试设备),但按下/选择时有白色文本和一点蓝色。 5.0及以上的作品。我的按钮没有任何额外的逻辑(现在),只有一组构造函数。如何为这个扩展 Button 的自定义小部件应用工作主题?

【问题讨论】:

    标签: android android-appcompat android-button android-theme android-styles


    【解决方案1】:

    在发布上述问题后的几个小时和 10 分钟后,我找到了正确答案:extends AppCompatButton(来自支持 v7),而不是 android.widget.Button

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 2017-07-01
      • 1970-01-01
      • 2014-01-16
      • 2018-09-15
      相关资源
      最近更新 更多