SearchView和键盘

时间:2013-03-08 14:22:10

标签: android keyboard searchview

我有一个活动,它直接在ListView上方有一个SearchView。该活动的工作原理是用户在SearchView中键入文本,然后用于过滤ListView的内容。

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

但是,当手机处于“风景”状态时方向,整个屏幕由键盘和"文本字段"屏幕的其余部分丢失了。 "搜索"按钮和" Magnify glass"键盘上的按钮似乎没有动作。

查看屏幕截图enter image description here

问题

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

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

3 个答案:

答案 0 :(得分:14)

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

android:imeOptions="actionSearch|flagNoExtractUi|flagNoFullscreen"

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

答案 1 :(得分:2)

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

爪哇:

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

答案 2 :(得分:0)

您可以通过onCreateOptionsMenu(菜单菜单)方法从Java代码中执行此操作:

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