【问题标题】:Occasionally when calling setImageResource on FAB no image at all is displayed有时在 FAB 上调用 setImageResource 时根本不显示任何图像
【发布时间】:2019-09-04 14:43:00
【问题描述】:

我有一个 FAB,每次按下按钮都会更改其图像。

所以在 xml 中:android:src="@drawable/start_img"

然后在按键功能中:

if (start_state) {
    ...
    start_state = false;
    fab.setImageResource(R.drawable.second_img);
else {
    ...
    fab.setImageResource(R.drawable.start_img);
    start_state = true;
}

但偶尔(我找不到任何类型的模式),FAB 上根本不会显示任何图像。这种状态一直保持到我重新加载片段为止。

我不知道这是怎么发生的。调用fab.setImageResource 只会在这两种情况下发生,而且我并不是在动态创建图像或其他东西,它们是固定的。为什么会消失。

我无法显示应用程序的所有代码。

【问题讨论】:

  • 没有看到更多代码,唯一合理的猜测是start_state 没有设置为您期望的值。为什么不在您的代码中添加一些日志,以确保 start_state 是您到达该部分代码时的样子?
  • start_state 是什么无关紧要,没有任何代码将图像设置为空图像。
  • 如果start_state 为真,并且图像已经是R.drawable.second_img,那么似乎什么都不会发生
  • 您需要仔细阅读我所说的内容。我是说根本不会显示任何图像。好像有什么东西叫fab.setImageResource(None) 或类似的东西。

标签: android floating-action-button


【解决方案1】:

还没有真正弄清楚,但知道是什么原因造成的。

打开特定 EditText 的键盘时,我在 FAB 上调用 hide()。之后当键盘关闭(我打电话给show())并按下FAB(应该切换显示的图像)时,它切换到根本不显示图像。

但是当我注释掉.hide() 行时,一切正常(奇怪)!意思是我触摸edittext,然后触摸完成交互之外,然后触摸FAB并切换图像。

请注意,我必须先编辑 EditText(这会导致调用 hide()),然后按 FAB 以使 FAB 图像的行为消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 2016-06-11
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多