只需要自定义控件监听 dispatchSetPressed 方法就可以轻松实现 比如:
class ImageViewButton(context: Context, attrs: AttributeSet?, defStyleAttr: Int): androidx.appcompat.widget.AppCompatImageView(context, attrs, defStyleAttr) { constructor(context: Context) : this(context, null, 0) constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0) override fun dispatchSetPressed(pressed: Boolean) { this.alpha = if(pressed) 0.3f else 1f super.dispatchSetPressed(pressed) } }
比传统的 selector 监听 state_pressed而言不仅 简直是一劳永逸