Data Binding给Button设置背景无效

Posted ttdevs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Data Binding给Button设置背景无效相关的知识,希望对你有一定的参考价值。

0x00 问题

通过Data Binding给Button设置背景无效。
具体表现为给Button设置不同的背景图片,但是无论怎样背景只会显示不同的颜色,而不是显示期望的图片。

0x01 分析

由于对Data Binding不是很熟悉,所以很奇怪为什么。不管怎样先打印下这个资源的值,发现在布局文件中打印资源值是有的。根据经验,设置不同的背景图片,背景会显示不同的颜色,那这个值可能被解析成了颜色值。

0x02 解决

在网上搜了一下(容我忘记了具体网址),需要通过不同的方式来设置背景:
之前的:

<Button
      android:layout_width="200dp"
      android:layout_height="200dp"
      android:gravity="center"
      android:onClick="@(view) -> handler.onStartClick(view)"
      android:text="@string/button_start"
      android:textColor="@color/blueColor"
      android:textSize="@dimen/global_font_large"
      android:background="@handler.startButtonBg"
      tools:background="@drawable/btn_main_circle_start" />

修改之后:

<Button
      android:layout_width="200dp"
      android:layout_height="200dp"
      android:gravity="center"
      android:onClick="@(view) -> handler.onStartClick(view)"
      android:text="@string/button_start"
      android:textColor="@color/blueColor"
      android:textSize="@dimen/global_font_large"
      app:backgroundResource="@handler.startButtonBg"
      tools:background="@drawable/btn_main_circle_start" />

也就是将之前的 android:background 换成 app:backgroundResource

总结

没啥总结的,Data Binding 还有很多等待探究。

—— EOF ——

以上是关于Data Binding给Button设置背景无效的主要内容,如果未能解决你的问题,请参考以下文章

Vue笔记

Qt如何给一个button,悬浮 按下设置不同的背景图

Qt如何给一个button,悬浮 按下设置不同的背景图

Data Binding Library(数据绑定库)

怎么设置html的text文本框的边框颜色和粗细?怎么给button按钮加背景图片?

Xamarin.Forms之Button