gpt4 book ai didi

android - 在带有可选文本的 TextView 上使用 onClick - 如何避免双击?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:48:44 25 4
gpt4 key购买 nike

这太奇怪了,但是如果您将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com