在前棒棒糖的无边框的按钮与支持图书馆

我使用支持库(23.0.1)制作无边框平面按钮。 它在Lollipop上正常工作。 但是在Lollipop之前我按下按钮它的颜色变为colorButtonNormal颜色,就像它是一个普通的按钮。

我不认为这是一种正常的行为,聚焦的颜色应该像Lollipop一样灰。

这是Lollipop和Pre-lollipop的截图。

Lollipop上的第一个正常行为:正常状态下的无边框按钮和棒棒糖上的聚焦状态

在此处输入图像描述

在Pre-Lollipop上不正常的行为( 欲望颜色像上面一样灰色,但不是 ):正常状态下的无边框按钮和前棒棒糖上的聚焦状态 在此处输入图像描述

主题

  //other stuff @color/orangeColor @style/BorderlessButtonStyle   @color/blueTextColor  

现在按钮布局:

 

任何方法都可以使用AppCompat主题和样式进行编写,而无需单独创建Drawable。

无边框按钮适用于支持库的Post和Pre Lollipop版本,但它们的onPressed颜色之间存在细微差别。

Pre-Lollipop:默认情况下onPressed颜色与使用colorButtonNormal设置的默认Button颜色相同。

Lollipop:默认情况下onPressed颜色为浅灰色,这是理想的选择。

你可以像这样制作一个无边框按钮:

  

现在,如果要在所有版本上使用相同的onPressed颜色,则可以在新主题中设置colorControlHighlight ,并在Button上设置该主题。

  

你的风格主题:

  

更新 :自Android 5.0 Lollipop和AppCompat v22.1.0(及更高版本)以来,您可以对View使用android:theme属性。

Button添加style="?attr/borderlessButtonStyle"对我来说很好。

为什么你担心一些事情只是与这个和自由

  

现在粗心大意api的东西

您正在使用Android实现的“buttonBarButtonStyle”样式,因为您通过?atr – use style="@style/BorderlessButtonStyle调用它。

编辑:保持您的xml不变,但您可以将其更改为您想要的行为,如下所示:

 AppCompatButton button = (AppCompatButton) findViewById(R.id.btnForgotPassword); ColorStateList colorStateList = new ColorStateList(new int[][] {{0}}, new int[] {0xFF969696}); //969696 is your wanted grey color, just change it button.setSupportBackgroundTintList(colorStateList);