这太奇怪了,但是如果您将 onClickListener 放在具有 android:textIsSelectable="true"
的 TextView(或不可编辑的 EditText)上 - 它需要不是一次,而是两次。
我在 3 部手机上进行了检查,所有手机仅在第二次点击后才执行 onClick。
当然,如果你制作 focusable="false"
或 android:textIsSelectable="false"
它从第一次点击开始工作,但文本选择不起作用.
请帮我解决这个问题
最佳答案
以 XML 格式设置到您的 TextView
android:textIsSelectable="true"
之后将 onTouchListener 设置为您的 TextView 并在其中执行此操作:
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) view.requestFocus();
它为每次点击 TextView 设置焦点。 毕竟将 onClickListener 设置为您的 TextView。
我的自定义 RecyclerView.Adapter 的 Holder 也有同样的问题。所以,如果您需要,我会为您剪下:
class RollHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnTouchListener {
private TextView textView;
RollHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.text_view);
textView.setOnClickListener(this);
textView.setOnTouchListener(this);
}
@Override //Слушатель нажатия
public void onClick(View view) {
switch (view.getId()){
case R.id.text_view:
//Do here that you need
break;
}
}
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (view.getId()){
case R.id.text_view:
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) view.requestFocus();
break;
};
return false;
}
}
关于android - 在带有可选文本的 TextView 上使用 onClick - 如何避免双击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22653641/