在我的应用程序中,我正在制作一个 search interface其中 SearchView
分别在失去焦点和获得焦点时折叠和展开。然而,失去焦点的事情只发生在两种情况下:
当按下后退按钮时。
当按下
SearchView
旁边的主页图标时。
如果用户不仅点击这两个东西,而且点击屏幕上的任何其他地方(例如,任何按钮或屏幕上没有 View 的任何空白部分),我希望它失去焦点(并因此崩溃)。
最佳答案
好吧,我找到了以下解决方案。我在不是 searchview 实例的每个 View 上使用 setOnTouchListener 来折叠 searchview。它对我来说很完美。以下是代码。
public void setupUI(View view) {
if(!(view instanceof SearchView)) {
view.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
searchMenuItem.collapseActionView();
return false;
}
});
}
//If a layout container, iterate over children and seed recursion.
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
View innerView = ((ViewGroup) view).getChildAt(i);
setupUI(innerView);
}
}
}
This是我提到的答案。
关于java - 单击 Activity 的其他位置时如何使 SearchView 失去焦点并崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17590874/