【お知らせ】みんプロ式Flutter講座は2026年4月末をもって新規販売を終了いたします。詳しくはこちら →
[Android]FloatingActionButtonを押してもアイコン画像が変わらない場合の対処法
このページには広告が含まれる場合があります。
浮いたボタンパーツである「FloatingActionButton(FAB)」はImageViewの子供で、setImageResourceメソッドが使えるので
例えば、こんな感じで、FABをクリックしたら画像を切り替えることができるはずなのですが、
if (isSoundEnabled!!) {
floatingActionButton.setImageResource(R.drawable.ic_volume_up_black_24dp)
} else {
floatingActionButton.setImageResource(R.drawable.ic_volume_off_black_24dp)
}
なぜか、こんな感じで画像が切り替わってくれない(FloatingActionButton#setImageResourceが効いてくれない)場合があります。
FABを一旦消して(hide)再表示させる(show)とうまくいくらしい
公式ドキュメントで記述が見つけられなかったので、このサイトを参考にさせて頂きました。
I have to change FAB state in UtteranceProgressListener callback methods but setImageResource() does nothing when called after setBackgroundTintColorList(). However it does change src image when I
おそらくバグではないかとのことですが、解決策としては、表示されているFloatingActionButton(FAB)を一旦消して、再表示させると画像がちゃんと表示されるようになる(setImageResourceメソッドが効く)ようになるそうです。
if (isSoundEnabled!!) {
floatingActionButton.apply{
hide() ← 一旦消して(隠して)
setImageResource(R.drawable.ic_volume_up_black_24dp) ← 画像をセットしてから
show() ← 再表示させる
}
} else {
floatingActionButton.apply{
hide()
setImageResource(R.drawable.ic_volume_off_black_24dp)
show()
}
}
こんな感じで。
(詳しくは下の動画で解説していますので、よろしければご覧ください)









