首页 > 解决方案 > 如何检查哪个图像是按钮的源图像并在每次单击 Kotlin 中的按钮时更改它

问题描述

我想要做的是,每次按下按钮时都更改源图像。假设现在源图像是“a”,当我按下按钮时,我希望它是“b”,当我再次按下它时,我希望它再次变回“a”。

我有此代码可以更改一次图像,但我无法检查当前的源图像,因此我无法将其更改回之前的图像。

注意:我正在使用FloatingActionButton

        override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        binding = FragmentDashboardBinding.inflate(inflater, container, false)

        binding.fbDashboard.setOnClickListener {

            fb_dashboard.setImageResource(R.drawable.ic_grid_view)
        }
        return binding.root
}

标签: androidkotlin

解决方案


您可以将视图的标签设置为当前正在显示的图像资源 id,然后使用标签的当前值来选择要显示的下一个图像:

val imageId = when (binding.fbDashboard.tag) {
    R.drawable.foo -> R.drawable.bar
    R.drawable.bar -> R.drawable.baz
    ...
    else -> R.drawable.foo
}

binding.fbDashboard.setImageResource(imageId)
binding.fbDashboard.tag = imageId

推荐阅读