我有一个活动,它直接在ListView上方有一个SearchView。该活动的工作原理是用户在SearchView中键入文本,然后用于过滤ListView的内容。
在4"手机(Nexus 4)当应用程序处于"肖像"方向和用户开始在搜索视图中输入文本,屏幕的下半部分占据键盘,文本直接输入SearchView小部件。
但是,当手机处于“风景”状态时方向,整个屏幕由键盘和"文本字段"屏幕的其余部分丢失了。 "搜索"按钮和" Magnify glass"键盘上的按钮似乎没有动作。
查看屏幕截图
问题
是否可以在横向方向上直接在SearchView小部件中输入文本?
如果没有,我如何让键盘上的按钮做什么?
答案 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);