gpt4 book ai didi

android - EditText 奇怪的焦点行为

转载 作者:行者123 更新时间:2023-11-29 23:13:31 30 4
gpt4 key购买 nike

好的,

当我将焦点放在我的 EditText 上并且显示键盘等时。我单击编辑文本末尾的可绘制对象(取消按钮)。我用 onTouchListener 识别这个事件并自己隐藏键盘、清除焦点等。

但是,当我“触摸”取消按钮时,它隐藏了键盘但焦点停留在编辑文本上。这意味着光标仍在显示,但不闪烁。因此,当我再次单击 edittext 以获得焦点时,它会显示复制/粘贴等选项,就像我长按光标并且不显示键盘一样。

但是当我“按下”取消按钮时,它会清除焦点,隐藏键盘,最重要的是它会隐藏光标,从而完全移除焦点。然后,当我再次单击编辑文本时,它会重新获得焦点并显示键盘。

这是什么奇怪的行为,我如何让它始终执行“按下”行为。

我的代码:

searchView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
if (event.getRawX() >= searchView.getRight() - searchView.getCompoundDrawables()[2].getBounds().width()) {
hideKeyboard(v);
isSearching = false;
searchView.setText("");
searchView.clearFocus();
searchView.setFocusable(false);
searchView.setFocusableInTouchMode(false);
getView().requestFocus(); // parent has both focusables true
searchView.setFocusable(true);
searchView.setFocusableInTouchMode(true);
fetchArticles();

return true;
}
}
return false;
}
});

正如您所看到的,我正在尽我所能始终获得相同的行为。然而到目前为止还没有运气。希望大家能帮帮我!

最佳答案

在该 EditText 的父级或您要触摸的 View 中尝试这些:

android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"

它将允许将焦点从 EditText 完全转移到别处

但是,如果您的可绘制对象位于您的 Edittext 内部,如下所示:

android:drawableLeft="@drawable/my_icon"

除非您在布局中将可绘制对象设为单独的 View ,否则该解决方案将不起作用。

关于android - EditText 奇怪的焦点行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55687410/

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