在我的应用程序中,我正在制作一个搜索界面 http://developer.android.com/training/search/setup.html其中SearchView
当它失去焦点和获得焦点时分别会折叠和扩展。然而,失去焦点的情况只发生在两种情况下:
当按下后退按钮时。
当主页图标旁边SearchView
被按下。
如果用户不仅单击这两个东西,而且单击屏幕上的任何其他位置(例如,任何按钮或屏幕上没有视图的任何空白部分),我希望它失去焦点(从而崩溃)。
好吧,我找到了以下解决方案。我在不是 searchview 实例的每个视图上使用 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 https://stackoverflow.com/a/11656129/820410是我提到的答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)