我有一个将isSelectable属性设置为TRUE的TextView,但是我也有一个onClickListener,因为。我想要一个人将要选择的文本保留在文本上,并且他可以复制它,但是如果他只是单击它,我希望打开一个屏幕。
this.subtitle.setTextIsSelectable(true); this.subtitle.setOnClickListener(v -> openMyScreen());
所以发生的事情是选择工作正常,但是如果单击它,则第一个事件将在某处消耗,并且仅当我第二次单击时才起作用。有谁知道我该如何解决这个问题。
答案 0 :(得分:1)
所以问题是,当您单击一次时,textview会变得集中。这就是消耗您的点击事件的原因。我唯一能找到的解决方法是在文本视图上使用setOnFocusChangeListener
,然后检查texview是否聚焦,并将其用作单击事件。
textview.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
// Handle click event
}
}
});
请注意,您仍然必须使用OnClickListener
来处理聚焦后的点击事件