Adel,是第一次点击的问题,还是根本没有点击?
如果您有多个可点击布局,则第一个没有任何点击事件,则会出现此问题。那是因为它首先被选中,然后你得到点击事件,试试下面的代码。
private class CustomTouchListener implements OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
TextView tv = (TextView) v.findViewById(R.id.single_line_text);
if (event.getAction() == MotionEvent.ACTION_DOWN) {
tv.setTextColor(COLOR_WHEN_PRESSED);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
tv.setTextColor(COLOR_WHEN_RELEASED);
// Action of click goes here
} else if (event.getAction() == MotionEvent.ACTION_CANCEL) {
tv.setTextColor(COLOR_WHEN_RELEASED);
// To handle release outside the layout region
}
return false;
}
}
如果您为布局设置触摸侦听器,这在我当前的实现中有效。
您还需要在布局下方设置
android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true"
希望能帮助到你!!!
编辑:此外,在 DOWN 和 UP 中都应该有一个标志。将其设置为 DOWN 并检查其是否设置为 UP。这将避免用户可能点击屏幕中的任何位置然后将鼠标悬停在您的文本视图上并释放它的错误。