【发布时间】:2019-01-14 20:51:39
【问题描述】:
我在一个按钮上定义一个CompoundDrawable 并对点击它做出反应:
mFileSelector.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int DRAWABLE_LEFT = 0;
final int DRAWABLE_TOP = 1;
final int DRAWABLE_RIGHT = 2;
final int DRAWABLE_BOTTOM = 3;
if (event.getAction() == MotionEvent.ACTION_UP) {
if (event.getRawX() >= (mFileSelector.getRight() - mFileSelector.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {
mFileSelector.setSelected(false);
mFileSelector.setPressed(false);
mFileSelector.clearFocus();
return true;
}
}
return false;
}
如您所见,我尝试了setSelected、setPressed 和clearFocus,但它们都没有任何效果。确认onTouch 后按钮保持“按下”状态(意味着我消耗了触摸事件)
【问题讨论】:
-
我刚刚测试了你的代码。只要我抬起手指,按钮就会恢复到正常状态。您是否也覆盖 MotionEvent.ACTION_DOWN 并且不使用它?
-
@MayRestinPeace 感谢您查看此内容。这就是所有相关的代码。我猜不同版本/供应商之间的行为会像往常一样发生变化
标签: android android-button ontouchlistener compound-drawables