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

标签 android events focusable

我有一个 TextView 可以在触摸时转换为 EditView。但是,我希望当用户触摸 EditView 之外的任何地方时发生相反的情况。我试过使用 setOnFocusChangeListener,但这似乎只有在其他事物获得焦点时才有效。我知道我可以拦截 onTouch 并在那里检查,但是有没有更简单的方法来处理这种情况?

最佳答案

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

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

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

关于Android - 如何判断用户 "clicks"是否在 TextView 之外的任何地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9205892/

相关文章:

java - Android 应用程序无法在 Eclipse 中的设备上启动

java - LoginButton 中的 setFragment 无法应用于 MainFragment

c# - 如果用户单击不可聚焦的内容,如何使控件失去焦点?

events - 在Dart中处理bootstrap4模态

delphi - 如何比较一个事件及其相应的过程,避免E2035和E2036?

java - keyListener 有问题

wpf - WPF如何使列表框/ ListView 无法定位

android - AsyncTask 将数据存储到服务器

java - 为什么 getCurrentInterruptionFilter BroadcastReceiver 在快速设置中起作用,但在设置中不起作用?

javascript - Ruby 客户端 Eventbrite API 使用 Javascript 查找事件 ID