O CardView possui um atributo card_view:cardBackgroundColor
para definir a cor do plano de fundo. Este atributo funciona bem.
Ao mesmo tempo, não há um método para alterar a cor dinamicamente.
Eu apenas tentei soluções como:
mCardView.setBackgroundColor(...);
ou usando um Layout dentro do cardView
<android.support.v7.widget.CardView>
<LinearLayout
android:id="@+id/inside_layout">
</android.support.v7.widget.CardView>
View insideLayout = mCardView.findViewById(R.id.inside_layout);
cardLayout.setBackgroundColor(XXXX);
Essas soluções não funcionam porque o cartão possui um cardCornerRadius.
android
android-5.0-lollipop
android-cardview
Gabriele Mariotti
fonte
fonte
card_view:cardBackgroundColor="@android:color/white"
card_view
namespace não funciona para mim, eu tenho que usá-loapp
.xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
Use a propriedade card_view: cardBackgroundColor:
fonte
Você pode usar isso em XML
ou isso em Java
fonte
Eu usei esse código para definir programaticamente:
Ou no XML você pode usar este código:
fonte
A maneira como é definida no
initialize
método usa aRoundRectDrawable
classe protegida , assim:Não é bonito, mas você pode estender essa classe. Algo como:
então:
EDITAR
Isso não dará a você a sombra da <API 21, então você terá que fazer o mesmo
RoundRectDrawableWithShadow
.Não parece haver uma maneira melhor de fazer isso.
fonte
Um pouco atrasado aqui e parcialmente fora de tópico, pois isso não é programaticamente, mas acho melhor configurar estilos para Widgets e você pode fazer isso
CardView
apenas criando um estilo para manter seu xml mais limpo ...isso está usando
android.support.v7.widget.CardView
e, em seguida, definindo o estilo no arquivo de layout:
você precisa importar a biblioteca appcompat-v7 usando o Android studio via gradle:
espero que isto ajude. codificação feliz
fonte
Eu estava tendo um problema semelhante ao formatar o CardViews em um recylerView.
Consegui essa solução simples funcionando, não tenho certeza se é a melhor solução, mas funcionou para mim.
Obtém o fundo Drawable do cardView e o tinge.
fonte
Você pode usar abaixo
fonte
Em JAVA
Android usa cores ARGB. você pode usar assim (0xFF + RGB COLOR) - Cor codificada.
fonte
Me deparei com o mesmo problema ao tentar criar uma visualização de cartão programaticamente, o estranho é que, olhando para o documento https://developer.android.com/reference/android/support/v7/widget/CardView.html#setCardBackgroundColor%28int % 29 , os caras do Google tornaram pública a API para alterar a cor de plano de fundo de uma exibição de cartão, mas estranhamente eu não consegui ter acesso a ela na biblioteca de suporte, então aqui está o que funcionou para mim:
CardViewBuilder.java
filter_container_background.xml
Fazendo isso, consigo manter a sombra do cardview e os cantos arredondados.
fonte
Eu tenho o mesmo problema no Xamarin.Android - VS (2017)
A solução que funcionou para mim:
SOLUÇÃO
No seu arquivo XML, adicione:
e no seu
android.support.v7.widget.CardView
elemento, adicione esta propriedade:(ie)
Você também pode adicionar
cardElevation
ecardElevation
.Se você deseja editar a
cardview
programação, basta usar este código: Para (C #)E agora você pode alterar a cor do plano de fundo de forma programática, sem perda de borda, raio do canto e elevação.
fonte
Você pode usar isso em java.
cardView.setCardBackgroundColor (Color.parseColor ("# cac8a0"));
código cor formulário http://www.color-hex.com/
fonte
É muito simples no kotlin. Use ColorStateList para alterar a cor da exibição do cartão
Uma extensão kotlin do ColorStateList:
fonte
A maneira mais simples para mim é essa (Kotlin)
fonte
Cardview
é um pouco tímido. Eu tinha uma lista de cores na minha estrutura e o modelo é como}
carregue o modelo com cor, último item da estrutura retirando
R.color
e, finalmente, você pode definirBackgrıundResource
fonte
Eu finalmente consegui os cantos para ficar. Este é o c #, Xamarin.Android
no ViewHolder:
No adaptador:
fonte
No Kotlin, pude alterar a cor do plano de fundo da seguinte maneira:
Então, se você deseja remover a cor, pode fazer o seguinte:
Usando esse método, eu consegui criar uma animação de seleção.
https://gfycat.com/equalcarefreekitten
fonte
fonte