IsSelectable从TextView上的onClickListener窃取事件

时间:2019-03-15 13:18:05

标签: android

我有一个将isSelectable属性设置为TRUE的TextView,但是我也有一个onClickListener,因为。我想要一个人将要选择的文本保留在文本上,并且他可以复制它,但是如果他只是单击它,我希望打开一个屏幕。

            this.subtitle.setTextIsSelectable(true);
            this.subtitle.setOnClickListener(v -> openMyScreen());

所以发生的事情是选择工作正常,但是如果单击它,则第一个事件将在某处消耗,并且仅当我第二次单击时才起作用。有谁知道我该如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

所以问题是,当您单击一次时,textview会变得集中。这就是消耗您的点击事件的原因。我唯一能找到的解决方法是在文本视图上使用setOnFocusChangeListener,然后检查texview是否聚焦,并将其用作单击事件。

textview.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            // Handle click event
        }
    }
});

请注意,您仍然必须使用OnClickListener来处理聚焦后的点击事件