在搜索视图外单击时让键盘消失
Get keyboard to disappear when clicking outside of searchview
当我在搜索视图选项卡之外单击时,我目前一直在尝试让键盘消失。
我的问题是,我试图将一个 onfocus 更改侦听器附加到最顶部的布局,以便在外部单击时从搜索视图中清除焦点,虽然它有效,但侦听器仅在略低于进度条的情况下起作用。我无法让监听器覆盖整个屏幕。帮助?我试图获取最顶层布局的父级,但没有成功。
这是我的屏幕图片,一直显示到听众工作的地方:https://drive.google.com/file/d/0B7Dd6tnM1aneaUVZNTI1NXQydDA/view?usp=sharing
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/session_linear_layout"
android:orientation="vertical" >
<SearchView
android:id="@+id/Session_searchbar"
android:layout_width="match_parent"
android:layout_height="47dp"
android:focusable="true"
android:focusableInTouchMode="true" />
<ProgressBar
android:id="@+id/session_progress_spinner"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" >
</ProgressBar>
</LinearLayout>
试试下面的代码
InputMethodManager inputManager =
(InputMethodManager) context.
getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(
searchView.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
当我在搜索视图选项卡之外单击时,我目前一直在尝试让键盘消失。
我的问题是,我试图将一个 onfocus 更改侦听器附加到最顶部的布局,以便在外部单击时从搜索视图中清除焦点,虽然它有效,但侦听器仅在略低于进度条的情况下起作用。我无法让监听器覆盖整个屏幕。帮助?我试图获取最顶层布局的父级,但没有成功。
这是我的屏幕图片,一直显示到听众工作的地方:https://drive.google.com/file/d/0B7Dd6tnM1aneaUVZNTI1NXQydDA/view?usp=sharing
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/session_linear_layout"
android:orientation="vertical" >
<SearchView
android:id="@+id/Session_searchbar"
android:layout_width="match_parent"
android:layout_height="47dp"
android:focusable="true"
android:focusableInTouchMode="true" />
<ProgressBar
android:id="@+id/session_progress_spinner"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" >
</ProgressBar>
</LinearLayout>
试试下面的代码
InputMethodManager inputManager =
(InputMethodManager) context.
getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(
searchView.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);