SearchView和键盘

我有一个ListView正上方的SearchView的活动。 该活动的作用是通过用户在SearchView中输入文本,然后用于过滤ListView的内容。

在4“手机(Nexus 4)上,当应用处于”纵向“方向,用户开始在搜索视图中输入文本时,屏幕的下半部分占据键盘,文本直接在SearchView小部件中输入。

但是,当手机处于“风景”方向时,整个屏幕被键盘和“文本字段”占据,屏幕的其余部分丢失。 键盘上的“搜索”按钮和“放大镜”按钮似乎没有任何操作。

看截图 在这里输入图像描述

是否可以在横向方向上直接在SearchView小部件中输入文本?

如果没有,我怎么让键盘上的按钮做些什么?

您需要为SearchView小部件设置您的imeOptions,例如在SearchableInfo xml中:

 android:imeOptions="actionSearch|flagNoExtractUi|flagNoFullscreen" 

如果您不使用xml来配置您的搜索视图,可以通过setImeOptions实现类似的功能。

在onCreateOptionsMenu(Menu menu)方法中,您可以使用Java代码执行以下操作:

 searchView.setImeOptions(searchView.getImeOptions() | EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI | EditorInfo.IME_FLAG_NO_FULLSCREEN); 

将imeOptions设置为android.support.v7.widget.SearchView不起作用:您需要在其中的EditText中设置它:

Java的:

 EditText searchInput = searchview.findViewById(android.support.v7.appcompat.R.id.search_src_text) searchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH) 

科特林:

 val searchInput = searchview.findViewById<EditText>(android.support.v7.appcompat.R.id.search_src_text) searchInput.imeOptions = EditorInfo.IME_ACTION_SEARCH 
Interesting Posts