mix*_*xel 3 android android-appcompat material-design
我正在使用com.android.support:appcompat-v7:23.0.1库创建应用程序.
我将应用程序主题定义在values/styles.xml:
<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="colorControlHighlight">@color/highlight_dark</item>
<item name="colorButtonNormal">@color/primary</item>
<item name="android:textColorPrimary">@color/primary_text</item>
<item name="android:textColorSecondary">@color/secondary_text</item>
</style>
<style name="AppTheme" parent="BaseAppTheme"></style>
Run Code Online (Sandbox Code Playgroud)
我使用AppCompat Widget.AppCompat.Button.Colored样式用于凸起按钮和Widget.AppComap.Button.Borderless.Colored样式用于平面按钮.
colorAccenttheme属性定义了凸起的按钮背景颜色和平面按钮文本颜色,但我认为这是一个bug,因为这些颜色应该由colorButtonNormal属性定义,就像它Widget.AppCompat.Button和Widget.AppComap.Button.Borderless样式一样.
colorControlHighlighttheme属性定义ripple两个按钮的颜色.
问题是:
colorControlHighlight应该是浅色(#40ffffff).但是平面按钮具有透明背景,并且colorControlHighlight应该是暗的(#40000000).如何ripple为凸起和平面按钮设置不同的颜色?我在下面添加了我当前的解决方案,但我不禁感到我错过了一些东西.
mix*_*xel 14
经过一些研究和谷歌搜索后,我为不同的凸起和平面按钮定义了不同的主题:
<style name="AppTheme.RaisedButton">
<item name="buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
</style>
<style name="AppTheme.RaisedButton.Primary">
<item name="colorAccent">@color/primary</item>
</style>
<style name="AppTheme.RaisedButton.Accent">
</style>
<style name="AppTheme.FlatButton">
<item name="buttonStyle">@style/Widget.AppCompat.Button.Borderless.Colored</item>
<item name="colorControlHighlight">@color/highlight_light</item>
</style>
<style name="AppTheme.FlatButton.Primary">
<item name="colorAccent">@color/primary</item>
</style>
<style name="AppTheme.FlatButton.Accent">
</style>
Run Code Online (Sandbox Code Playgroud)
请注意,我使用buttonStyle属性不是android:buttonStyle因为它不适用于棒棒糖前设备.
在android:theme属性中使用这些主题:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_button"
android:theme="@style/AppTheme.FlatButton.Primary" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3668 次 |
| 最近记录: |