【发布时间】:2016-12-13 16:55:42
【问题描述】:
我想知道是否有一种方法可以通过单击浮动操作按钮来更改 edittext 对象的背景颜色。现在我不需要设置颜色或任何类型的代码,只需要存储浮动操作按钮的颜色并将其分配给edittext对象的背景颜色的部分。
我尝试了此链接中的解决方案: How to get background color of button. On click action depends on background color
上面的链接仅适用于常规按钮,但对于浮动操作按钮,我收到一条错误消息:
android.support.design.widget.ShadowDrawableWrapper cannot be cast to android.graphics.drawable.ColorDrawable
有没有办法让我将 Color Drawable 投射到 FAB 来做我上面想做的事情?
这是我尝试过的:
FloatingActionButton btnTag = new FloatingActionButton(R.id.some_button);
ColorDrawable someColor = (ColorDrawable) btnTag.getBackground();
int colorId = someColor.getColor();
//Then set edittext's background color to same color as FAB with id some_button
EditText et= new EditText(R.id.some_et);
et.setBackgroundColor(colorId);
但这似乎不起作用,可能是由于 FAB 的绘制方式,不像常规按钮是方形且没有圆角。所以我想知道是否有任何方法可以编辑我提供的代码以使其按预期工作?
任何帮助将不胜感激。
编辑: 我不得不提一下,我需要它在 api 11 及更高版本上工作。
【问题讨论】:
-
getContentBackground应该返回一个没有阴影的drawable。至少文档是这么说的 -
浮动操作按钮似乎没有一个名为 getContentBackground 的方法。我该怎么称呼它?
-
你没有使用这个浮动动作按钮类吗? developer.android.com/reference/android/support/design/widget/…
-
我是,但它似乎给了我“无法解析方法 getContentBackground()”的消息。您知道该方法是否适用于 api 级别 11?
-
根据这个链接似乎是为了更高的api级别,我认为它不会起作用:developer.android.com/sdk/support_api_diff/23.2.0/changes/…
标签: java android button colors background-color