Android - 如何判断用户是否"clicks" TextView之外的任何地方?



我有一个TextView,它在触摸时转换为EditView。然而,当用户触摸EditView之外的任何地方时,我希望发生相反的情况。我曾尝试过使用setOnFocusChangeListener,但只有当其他内容获得关注时,它才会起作用。我知道我可以拦截onTouch并在那里进行检查,但有没有更简单的方法来处理这种情况?

我也在我的项目中使用过这个,并解决了如下问题:

我将EditText外部的布局设置为"focusable=true"one_answers"clickable=true",EditText没有背景所以它看起来像一个TextView,在焦点改变时,我改变了EditText的文本颜色,这样用户可以看到他/她可以编辑文本。然后,外部布局有一个OnClickListener,单击我隐藏软件键盘并将文本颜色改回TextView颜色。这一切在不切换元件的情况下工作。如果需要,可以将两个元素都放置在FrameLayout以确保元素在布局中具有相同的位置,实现在TextView上的OnClickListener,然后在onClick事件中切换对象可见性。

也许这个想法对你有帮助;)

设置TextView的父级并将视图编辑为可聚焦。

使所有布局和视图都可以点击,并在每个布局和视图上实现onClickListener,在onClickListen上写如下:

private ClickListener implements OnClickListener
{
    public void onClick(View view)
    {
         if(v.getId()!=R.id.editView)
         {
              //Write your code here to replace views
         }
    }
}

最新更新