在搜索视图外单击时让键盘消失

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);