我正在使用支持库(23.0.1)制作无边界平面按钮。它对棒棒糖的作用很正常。但是在棒棒糖前,当我按下按钮时,它的颜色会变为colorButtonNormal颜色,就像它是一个普通的按钮。
我不这么认为,这是一个正常的行为和集中的颜色应该是灰色像棒棒糖。
这是棒棒糖和棒棒糖前的截图。
棒棒糖的第一个正常行为:
棒棒糖正常状态和聚焦状态下的无边界按钮
android - 前棒棒糖的无边框按钮与支持图书馆-LMLPHP
棒棒糖前的不正常行为(欲望颜色如上图所示为灰色,但事实并非如此):
正常状态下无边界按钮和棒棒糖前聚焦状态
android - 前棒棒糖的无边框按钮与支持图书馆-LMLPHP
主题

<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(及更高版本)以来,您可以为aandroid:theme使用View属性。

08-04 05:40