我正在使用支持库(23.0.1)制作无边界平面按钮。它对棒棒糖的作用很正常。但是在棒棒糖前,当我按下按钮时,它的颜色会变为colorButtonNormal
颜色,就像它是一个普通的按钮。
我不这么认为,这是一个正常的行为和集中的颜色应该是灰色像棒棒糖。
这是棒棒糖和棒棒糖前的截图。
棒棒糖的第一个正常行为:
棒棒糖正常状态和聚焦状态下的无边界按钮
棒棒糖前的不正常行为(欲望颜色如上图所示为灰色,但事实并非如此):
正常状态下无边界按钮和棒棒糖前聚焦状态
主题
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
//other stuff
<item name="colorButtonNormal">@color/orangeColor</item>
<item name="buttonBarButtonStyle">@style/BorderlessButtonStyle</item>
</style>
<style name="BorderlessButtonStyle" parent="Widget.AppCompat.Button.Borderless">
<item name="android:textColor">@color/blueTextColor</item>
</style>
布局中的“现在”按钮:
<Button
android:id="@+id/btnForgotPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/forgot_your_password"
style="?attr/buttonBarButtonStyle"
/>
使用appcompat主题和样式编写而无需制作单独的可绘制文件的任何方法。
最佳答案
无边界按钮在支持库的post和pre-lollipop版本上都可以使用,但是在按下的颜色之间有一点差别。
棒棒糖前:默认情况下,按下的颜色与使用colorButtonNormal
设置的默认按钮颜色相同。
棒棒糖:默认情况下压榨颜色是浅灰色,这是理想的。
您可以制作这样的无边框按钮:
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name"
style="@style/Widget.AppCompat.Button.Borderless"/>
现在,如果您想在所有版本上使用相同的onpressed颜色,则可以在新主题中设置
colorControlHighlight
,并将该主题设置为on按钮。<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name"
android:theme="@style/BorderlessButton"
style="@style/Widget.AppCompat.Button.Borderless"/>
以及你的风格主题:
<style name="BorderlessButton" parent="Theme.AppCompat.Light">
<item name="colorControlHighlight">YOUR COLOR</item>
</style>
更新:自android 5.0棒棒糖和appcompat v22.1.0(及更高版本)以来,您可以为a
android:theme
使用View
属性。