我尝试使用以下代码将颜色更改为MaterialButton:
var materialButton = findViewByid(R.id....) as MaterialButton
materialButton.setBackgroundColor( ContextCompat.getColor(this@MyActivity, R.color.myCustomColor));
使用普通按钮,它可以工作。 有人有什么想法吗?
答案 0 :(得分:7)
我找到了如下答案:
我更改了以下行
@if(!empty($address))
@foreach($address as $row)
<p><strong>Address : </strong>{{ $row->house_no }}, {{ $row->location }}, {{ $row->landmark }}</p>
<p><strong> City : </strong>{{ $row->city }}</p>
<p><strong>State : </strong> {{ $row->state }}</p>
<p><strong>Pin Code : </strong>{{ $row->pin_code}}</p>
<a data-toggle="modal" data-target="#mod1">Edit address</a>
@endforeach
到
materialButton.setBackgroundColor( ContextCompat.getColor(this@MyActivity, R.color.myCustomColor));
我以这种方式进行了测试,并且效果很好。
答案 1 :(得分:2)
只需在Material Button中的XML文件中调用此属性。
android:backgroundTint=""
答案 2 :(得分:0)
您应该更改colorAccent来更改materialButton的背景。
请勿使用android:background属性。 MaterialButton管理其自己的背景可绘制对象,并且设置新的背景意味着MaterialButton无法再保证其引入的新属性将正常运行。如果更改了默认背景,则MaterialButton无法保证行为明确。
对于填充按钮,此类使用主题的?attr / colorAccent表示背景色,而白色表示文本色。对于未填充的按钮,此类使用?attr / colorAccent表示文本颜色,并使用透明表示背景色。
答案 3 :(得分:0)
让我们尝试一下:
mButton.getBackground().setColorFilter(getResources().getColor(R.color.indian_red), PorterDuff.Mode.SRC_ATOP);
答案 4 :(得分:0)
尝试一下
Drawable drawable = DrawableCompat.wrap(mButton.getBackground());
drawable.mutate();
DrawableCompat.setTint(drawable, getResources().getColor(R.color.my_color));
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
答案 5 :(得分:0)
materialButton.setBackgroundColor( ContextCompat.getColor(this@MyActivity, R.color.myCustomColor))
处理材料设计依赖项
implementation 'com.google.android.material:material:1.2.0-alpha05'
答案 6 :(得分:0)
有关C#/ Xamarin.Android:
button.BackgroundTintList = ColorStateList.ValueOf(element.Color.ToAndroid());
答案 7 :(得分:-1)
materialButton.setBackgroundColor(ContextCompat.getColor(this @ MyActivity,R.color.myCustomColor));