在SearchView上的活动开始时隐藏键盘不起作用

时间:2018-03-09 07:26:37

标签: android focus searchview

我有一种情况,我打开SearchActivity,我希望光标在SearchView(保持焦点),而不是首先显示键盘。当和仅当用户按下SearchView时我想显示键盘(光标应该是完整的)

6 个答案:

答案 0 :(得分:2)

activity.xml文件的主要布局

中添加以下这一行
<LinearLayout
    ...
    android:focusableInTouchMode="true"
    ...
   >

答案 1 :(得分:0)

Manifest

SearchActivity添加此行
<activity name=".SearchActivity"
android:windowSoftInputMode="stateHidden" />

或在活动中onCreate()添加

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

答案 2 :(得分:0)

SearchActivity

中的onCreate中尝试此操作
 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)‌​;

答案 3 :(得分:0)

将此添加到您的onCreate以隐藏kayboard

public void hideSoftKeyboard() {
    if(getCurrentFocus()!=null) {
        InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
    }
}

答案 4 :(得分:0)

您使用以下代码显示键盘..

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(searchView, InputMethodManager.SHOW_IMPLICIT);

并关闭键盘使用此...

        imm.hideSoftInputFromWindow(searchView.getWindowToken(),0);

答案 5 :(得分:0)

在SearchView获得焦点之后,您必须隐藏软键盘:

search.postDelayed({
        val imm = activity?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(view?.windowToken, 0)
    }, 100)