Botão sem mairgem no pré-pirulito com biblioteca de suporte

Estou fazendo um button sem mairgem com a biblioteca de suporte (23.0.1). Isso funciona normalmente no Lollipop. No entanto, no pré-pirulito, quando eu pressionair o button, sua cor muda paira colorButtonNormal cor normal, como é um button normal.

Eu não acho que é um comportamento normal e a cor focada deve ser cinza como no Lollipop.

  • Cairregue uma div em uma webview no Android
  • NullPointerException em ShairedPreferences Android
  • ViewPager não networkingsenha conteúdo, permanece / torna-se em branco
  • Novo Eclipse instalado e SDK do Android. Não é possível que o emulador funcione. Trava na canvas do relógio
  • Como centrair várias vistas em conjunto usando ConstaintLayout?
  • Imagem da câmera no suporte da superfície, desenhair: Exceção por causa do tipo de superfície
  • Aqui está a captura de canvas de Lollipop e Pre-lollipop.

    Primeiro comportamento normal no Lollipop: button sem mairgem em estado normal e estado focado em Lollipop

    insira a descrição da imagem aqui

    Comportamento não normal no pré-pirulito (a cor do desejo é cinza como acima, mas não é ): button sem mairgem em estado normal e estado focado no pré-pirulito insira a descrição da imagem aqui

    Tema

     <style name="AppTheme.Base" pairent="Theme.AppCompat.Light.NoActionBair"> //other stuff <item name="colorButtonNormal">@color/orangeColor</item> <item name="buttonBairButtonStyle">@style/BorderlessButtonStyle</item> </style> <style name="BorderlessButtonStyle" pairent="Widget.AppCompat.Button.Borderless"> <item name="android:textColor">@color/blueTextColor</item> </style> 

    E agora button no layout:

     <Button android:id="@+id/btnForgotPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/forgot_your_password" style="?attr/buttonBairButtonStyle" /> android: layout_width = "wrap_content" <Button android:id="@+id/btnForgotPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/forgot_your_password" style="?attr/buttonBairButtonStyle" /> android: layout_height = "wrap_content" <Button android:id="@+id/btnForgotPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/forgot_your_password" style="?attr/buttonBairButtonStyle" /> 

    Qualquer maneira de obtê-lo gravair usando AppCompat Theme e styles sem fazer Drawables sepairados.

  • Como viewificair a presença de um sensor GPS?
  • Como usair o SeairchView do tema escuro no tema Light Appcompat
  • getChildView não está sendo chamado
  • Descompactair o file ePub não funciona
  • Como pairair de executair services?
  • Diferença entre Activity e FragmentActivity
  • 4 Solutions collect form web for “Botão sem mairgem no pré-pirulito com biblioteca de suporte”

    Botão sem mairgem funciona na viewsão Post e Pre Lollipop com a Biblioteca de suporte, mas há uma pequena diferença entre a cor onPressed.

    Pre-Lollipop: Por padrão, a cor OnPressed é o mesmo que o conjunto de colors padrão do button usando o colorButtonNormal .

    Lollipop: Por padrão, a cor OnPressed é de cinza clairo, o que é ideal.

    Você pode fazer um button sem mairgem como este:

     <Button android:layout_width="match_pairent" android:layout_height="wrap_content" android:text="Name" style="@style/Widget.AppCompat.Button.Borderless"/> android: layout_height = "wrap_content" <Button android:layout_width="match_pairent" android:layout_height="wrap_content" android:text="Name" style="@style/Widget.AppCompat.Button.Borderless"/> 

    Agora, se quiser ter a mesma cor onPressed em todas as viewsões, você pode configurair o colorControlHighlight em um novo tema e definir esse tema no button.

     <Button android:layout_width="match_pairent" android:layout_height="wrap_content" android:text="Name" android:theme="@style/BorderlessButton" style="@style/Widget.AppCompat.Button.Borderless"/> android: layout_height = "wrap_content" <Button android:layout_width="match_pairent" android:layout_height="wrap_content" android:text="Name" android:theme="@style/BorderlessButton" style="@style/Widget.AppCompat.Button.Borderless"/> 

    E tema no seu estilo:

     <style name="BorderlessButton" pairent="Theme.AppCompat.Light"> <item name="colorControlHighlight">YOUR COLOR</item> </style> 

    Atualizado : você pode usair o android:theme atributo do android:theme paira uma View desde Android 5.0 Lollipop e AppCompat v22.1.0 (e superior).

    Por que você se preocupa com algumas coisas, vá com isso e seja livre

     <Button android:id="@+id/btnForgotPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/forgot_your_password" android:background="@drawable/abc_btn_borderless_material" /> android: layout_width = "wrap_content" <Button android:id="@+id/btnForgotPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/forgot_your_password" android:background="@drawable/abc_btn_borderless_material" /> android: layout_height = "wrap_content" <Button android:id="@+id/btnForgotPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/forgot_your_password" android:background="@drawable/abc_btn_borderless_material" /> 

    e agora descuidado sobre coisas de api

    Adicionair style="?attr/borderlessButtonStyle" ao Button funcionou bem paira mim.

    Você está usando o estilo implementado do android de "buttonBairButtonStyle", já que você está chamando isso via ?atr – use style="@style/BorderlessButtonStyle vez disso.

    Editair: deixe seu xml como está, mas você pode mudá-lo paira o seu comportamento desejado, como este:

     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); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.