Most visited

Recently visited

SearchView

public class SearchView
extends LinearLayoutCompat implements CollapsibleActionView

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.support.v7.widget.LinearLayoutCompat
         ↳ android.support.v7.widget.SearchView


为用户提供用户界面的小部件,用于输入搜索查询并向搜索提供者提交请求。 显示查询建议或结果的列表(如果可用),并允许用户选择要启动的建议或结果。

注意:该类包含在support library中,以兼容API级别7和更高级别。 如果您开发的API级别11的应用程序和更高版本 ,您应该使用框架SearchView类。

当SearchView在 ActionBar用作操作视图时,默认情况下会将其折叠,因此您必须为该操作提供一个图标。

如果您希望搜索字段始终可见,请致电 setIconifiedByDefault(false)

Developer Guides

有关使用SearchView信息,请阅读Search API指南。 有关操作视图的其他信息也可在< Action Bar API指南中找到

也可以看看:

Summary

Nested classes

interface SearchView.OnCloseListener

 

interface SearchView.OnQueryTextListener

对查询文本进行更改的回调。

interface SearchView.OnSuggestionListener

建议选择事件的回调界面。

XML attributes

android.support.v7.appcompat:iconifiedByDefault The default state of the SearchView. 
android.support.v7.appcompat:queryHint An optional user-defined query hint string to be displayed in the empty query field. 
android:imeOptions The IME options to set on the query text field. 
android:inputType The input type to set on the query text field. 
android:maxWidth An optional maximum width of the SearchView. 

Inherited XML attributes

From class android.view.ViewGroup
From class android.view.View

Inherited constants

From class android.support.v7.widget.LinearLayoutCompat
From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

SearchView(Context context)
SearchView(Context context, AttributeSet attrs)
SearchView(Context context, AttributeSet attrs, int defStyleAttr)

Public methods

int getImeOptions()

返回在查询文本字段上设置的IME选项。

int getInputType()

返回查询文本字段中设置的输入类型。

int getMaxWidth()

如果设置,获取指定的最大宽度(以像素为单位)。

CharSequence getQuery()

返回当前在文本字段中的查询字符串。

CharSequence getQueryHint()

返回将在查询文本字段中显示的提示文本。

CursorAdapter getSuggestionsAdapter()

返回用于建议的适配器(如果有)。

boolean isIconfiedByDefault()

返回搜索字段的默认图标化状态。

boolean isIconified()

返回SearchView的当前图标化状态。

boolean isQueryRefinementEnabled()

返回是否为所有项目或仅特定项目启用查询优化。

boolean isSubmitButtonEnabled()

返回提交按钮在必要时是启用还是从不显示。

void onActionViewCollapsed()

当此视图作为操作视图折叠时调用。

void onActionViewExpanded()

当此视图作为操作视图展开时调用。

void onWindowFocusChanged(boolean hasWindowFocus)

当包含此视图的窗口获得或失去焦点时调用。

void setIconified(boolean iconify)

图标化或扩展SearchView。

void setIconifiedByDefault(boolean iconified)

设置搜索字段的默认或静止状态。

void setImeOptions(int imeOptions)

在查询文本字段上设置IME选项。

void setInputType(int inputType)

在查询文本字段上设置输入类型。

void setMaxWidth(int maxpixels)

最多可以使视图的像素很宽

void setOnCloseListener(SearchView.OnCloseListener listener)

设置侦听器以通知用户何时关闭SearchView。

void setOnQueryTextFocusChangeListener(View.OnFocusChangeListener listener)

设置侦听器以通知查询文本字段的焦点何时更改。

void setOnQueryTextListener(SearchView.OnQueryTextListener listener)

在SearchView中为用户操作设置侦听器。

void setOnSearchClickListener(View.OnClickListener listener)

设置侦听器以通知何时按下搜索按钮。

void setOnSuggestionListener(SearchView.OnSuggestionListener listener)

设置侦听器以通知何时关注或单击建议。

void setQuery(CharSequence query, boolean submit)

在文本字段中设置查询字符串,并可以选择提交查询。

void setQueryHint(CharSequence hint)

设置要在查询文本字段中显示的提示文本。

void setQueryRefinementEnabled(boolean enable)

指定是否应该在每个建议旁边显示查询细化按钮,还是应该依赖于从建议提供程序检索的各个项目中设置的标志。

void setSearchableInfo(SearchableInfo searchable)

为此SearchView设置SearchableInfo。

void setSubmitButtonEnabled(boolean enabled)

当查询非空时启用显示提交按钮。

void setSuggestionsAdapter(CursorAdapter adapter)

如果您愿意,您可以设置一个自定义适配器。

Protected methods

void onDetachedFromWindow()

这是在视图从窗口分离时调用的。

void onLayout(boolean changed, int left, int top, int right, int bottom)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

void onRestoreInstanceState(Parcelable state)

挂钩允许视图重新应用之前由 onSaveInstanceState()生成的内部状态的表示。

Parcelable onSaveInstanceState()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。

Inherited methods

From class android.support.v7.widget.LinearLayoutCompat
From class android.view.ViewGroup
From class android.view.View
From class java.lang.Object
From interface android.view.ViewParent
From interface android.view.ViewManager
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource
From interface android.support.v7.view.CollapsibleActionView

XML attributes

android.support.v7.appcompat:iconifiedByDefault

SearchView的默认状态。 如果为true,则在不使用时将显示图标,并在点击时展开。

可能是一个布尔值,如“ true ”或“ false ”。

相关方法:

android.support.v7.appcompat:queryHint

可选的用户定义的查询提示字符串将显示在空白查询字段中。

可能是一个字符串值,使用'\\;' 转义字符如'\\ n'或'\\ uxxxx'作为unicode字符;

相关方法:

android:imeOptions

在查询文本字段上设置的IME选项。

必须是以下常量值中的一个或多个(用'|'分隔)。

Constant Value 描述
normal 0
actionDone 6
actionGo 2
actionNext 5
actionNone 1
actionPrevious 7
actionSearch 3
actionSend 4
actionUnspecified 0
flagForceAscii 80000000
flagNavigateNext 8000000
flagNavigatePrevious 4000000
flagNoAccessoryAction 20000000
flagNoEnterAction 40000000
flagNoExtractUi 10000000
flagNoFullscreen 2000000

相关方法:

android:inputType

在查询文本字段上设置的输入类型。

必须是以下常量值中的一个或多个(用'|'分隔)。

Constant Value 描述
none 0
date 14
datetime 4
number 2
numberDecimal 2002
numberPassword 12
numberSigned 1002
phone 3
text 1
textAutoComplete 10001
textAutoCorrect 8001
textCapCharacters 1001
textCapSentences 4001
textCapWords 2001
textEmailAddress 21
textEmailSubject 31
textFilter b1
textImeMultiLine 40001
textLongMessage 51
textMultiLine 20001
textNoSuggestions 80001
textPassword 81
textPersonName 61
textPhonetic c1
textPostalAddress 71
textShortMessage 41
textUri 11
textVisiblePassword 91
textWebEditText a1
textWebEmailAddress d1
textWebPassword e1
time 24

相关方法:

android:maxWidth

SearchView的可选最大宽度。

可能是一个维度值,它是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸和毫米。

相关方法:

Public constructors

SearchView

SearchView (Context context)

Parameters
context Context

SearchView

SearchView (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

SearchView

SearchView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

Public methods

getImeOptions

int getImeOptions ()

返回在查询文本字段上设置的IME选项。

相关XML属性:

Returns
int the ime options

也可以看看:

getInputType

int getInputType ()

返回查询文本字段中设置的输入类型。

相关XML属性:

Returns
int the input type

getMaxWidth

int getMaxWidth ()

如果设置,获取指定的最大宽度(以像素为单位)。 如果未指定最大宽度,则返回零。

相关XML属性:

Returns
int the maximum width of the view

getQuery

CharSequence getQuery ()

返回当前在文本字段中的查询字符串。

Returns
CharSequence the query string

getQueryHint

CharSequence getQueryHint ()

返回将在查询文本字段中显示的提示文本。

显示的查询提示按以下顺序选择:

  1. Non-null value set with setQueryHint(CharSequence)
  2. Value specified in XML using app:queryHint
  3. Valid string resource ID exposed by the SearchableInfo via getHintId()
  4. Default hint provided by the theme against which the view was inflated

相关XML属性:

Returns
CharSequence the displayed query hint text, or null if none set

getSuggestionsAdapter

CursorAdapter getSuggestionsAdapter ()

返回用于建议的适配器(如果有)。

Returns
CursorAdapter the suggestions adapter

isIconfiedByDefault

boolean isIconfiedByDefault ()

返回搜索字段的默认图标化状态。

相关XML属性:

Returns
boolean

isIconified

boolean isIconified ()

返回SearchView的当前图标化状态。

Returns
boolean true if the SearchView is currently iconified, false if the search field is fully visible.

isQueryRefinementEnabled

boolean isQueryRefinementEnabled ()

返回是否为所有项目或仅特定项目启用查询优化。

Returns
boolean true if enabled for all items, false otherwise.

isSubmitButtonEnabled

boolean isSubmitButtonEnabled ()

返回提交按钮在必要时是启用还是从不显示。

Returns
boolean whether the submit button is enabled automatically when necessary

onActionViewCollapsed

void onActionViewCollapsed ()

当此视图作为操作视图折叠时调用。 collapseActionView(android.view.MenuItem)

onActionViewExpanded

void onActionViewExpanded ()

当此视图作为操作视图展开时调用。 expandActionView(android.view.MenuItem)

onWindowFocusChanged

void onWindowFocusChanged (boolean hasWindowFocus)

当包含此视图的窗口获得或失去焦点时调用。 请注意,这与视图焦点不同:要接收关键事件,视图和其窗口都必须具有焦点。 如果一个窗口显示在需要输入焦点的窗口上,那么您自己的窗口将失去焦点,但视图焦点将保持不变。

Parameters
hasWindowFocus boolean: True if the window containing this view now has focus, false otherwise.

setIconified

void setIconified (boolean iconify)

图标化或扩展SearchView。 图标化后,任何查询文本都会被清除。 这是一个临时状态,不会覆盖由setIconifiedByDefault(boolean)设置的默认图标化状态。 如果默认状态是图标化的,那么此处的错误将仅在用户关闭该字段之前有效。 如果默认状态被展开,那么这里的真实只会清除文本字段而不会关闭它。

Parameters
iconify boolean: a true value will collapse the SearchView to an icon, while a false will expand it.

setIconifiedByDefault

void setIconifiedByDefault (boolean iconified)

设置搜索字段的默认或静止状态。 如果为true,则默认显示单个搜索图标,并在按下时展开以显示文本字段和其他按钮。 另外,如果默认状态为图标化,则当按下关闭按钮时,它会折叠到该状态。 此属性的更改将立即生效。

默认值是true。

相关XML属性:

Parameters
iconified boolean: whether the search field should be iconified by default

setImeOptions

void setImeOptions (int imeOptions)

在查询文本字段上设置IME选项。

相关XML属性:

Parameters
imeOptions int: the options to set on the query text field

也可以看看:

setInputType

void setInputType (int inputType)

在查询文本字段上设置输入类型。

相关XML属性:

Parameters
inputType int: the input type to set on the query text field

也可以看看:

setMaxWidth

void setMaxWidth (int maxpixels)

最多可以使视图的像素很宽

相关XML属性:

Parameters
maxpixels int

setOnCloseListener

void setOnCloseListener (SearchView.OnCloseListener listener)

设置侦听器以通知用户何时关闭SearchView。

Parameters
listener SearchView.OnCloseListener: the listener to call when the user closes the SearchView.

setOnQueryTextFocusChangeListener

void setOnQueryTextFocusChangeListener (View.OnFocusChangeListener listener)

设置侦听器以通知查询文本字段的焦点何时更改。

Parameters
listener View.OnFocusChangeListener: the listener to inform of focus changes.

setOnQueryTextListener

void setOnQueryTextListener (SearchView.OnQueryTextListener listener)

在SearchView中为用户操作设置侦听器。

Parameters
listener SearchView.OnQueryTextListener: the listener object that receives callbacks when the user performs actions in the SearchView such as clicking on buttons or typing a query.

setOnSearchClickListener

void setOnSearchClickListener (View.OnClickListener listener)

设置侦听器以通知何时按下搜索按钮。 这仅在文本字段默认不可见时才有用。 调用setIconified(false)也会导致通知此侦听器。

Parameters
listener View.OnClickListener: the listener to inform when the search button is clicked or the text field is programmatically de-iconified.

setOnSuggestionListener

void setOnSuggestionListener (SearchView.OnSuggestionListener listener)

设置侦听器以通知何时关注或单击建议。

Parameters
listener SearchView.OnSuggestionListener: the listener to inform of suggestion selection events.

setQuery

void setQuery (CharSequence query, 
                boolean submit)

在文本字段中设置查询字符串,并可以选择提交查询。

Parameters
query CharSequence: the query string. This replaces any query text already present in the text field.
submit boolean: whether to submit the query right now or only update the contents of text field.

setQueryHint

void setQueryHint (CharSequence hint)

设置要在查询文本字段中显示的提示文本。 这将覆盖SearchableInfo指定的任何提示。

此值可能被指定为空字符串以防止显示任何查询提示。

相关XML属性:

Parameters
hint CharSequence: the hint text to display or null to clear

setQueryRefinementEnabled

void setQueryRefinementEnabled (boolean enable)

指定是否应该在每个建议旁边显示查询细化按钮,还是应该依赖于从建议提供程序检索的各个项目中设置的标志。 点击查询优化按钮将查询文本字段中的文本替换为来自建议的文本。 如果SearchableInfo已用setSearchableInfo(SearchableInfo)指定,而不是在使用自定义适配器时指定,此标志才会生效。

Parameters
enable boolean: true if all items should have a query refinement button, false if only those items that have a query refinement flag set should have the button.

也可以看看:

setSearchableInfo

void setSearchableInfo (SearchableInfo searchable)

为此SearchView设置SearchableInfo。 SearchableInfo中的属性用于显示标签,提示,建议,创建启动搜索结果屏幕和控制其他功能(如语音按钮)的意图。

Parameters
searchable SearchableInfo: a SearchableInfo can be retrieved from the SearchManager, for a specific activity or a global search provider.

setSubmitButtonEnabled

void setSubmitButtonEnabled (boolean enabled)

当查询非空时启用显示提交按钮。 如果SearchView用于过滤当前活动的内容并且不启动单独的结果活动,则应该禁用提交按钮。

Parameters
enabled boolean: true to show a submit button for submitting queries, false if a submit button is not required.

setSuggestionsAdapter

void setSuggestionsAdapter (CursorAdapter adapter)

如果您愿意,您可以设置一个自定义适配器。 否则,默认适配器将用于显示来自与SearchableInfo关联的建议提供程序的建议。

Parameters
adapter CursorAdapter

也可以看看:

Protected methods

onDetachedFromWindow

void onDetachedFromWindow ()

这是在视图从窗口分离时调用的。 此时它不再有绘图表面。

onLayout

void onLayout (boolean changed, 
                int left, 
                int top, 
                int right, 
                int bottom)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。 带孩子的派生类应该覆盖这个方法,并调用他们每个孩子的布局。

Parameters
changed boolean: This is a new size or position for this view
left int: Left position, relative to parent
top int: Top position, relative to parent
right int: Right position, relative to parent
bottom int: Bottom position, relative to parent

onMeasure

void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用, measure(int, int)子类覆盖以提供其内容的准确和有效的度量。

合同:覆盖此方法时,您必须致电setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 如果不这样做将触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一种有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()getSuggestedMinimumWidth() )。

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

onRestoreInstanceState

void onRestoreInstanceState (Parcelable state)

吊钩允许视图重新应用之前由onSaveInstanceState()生成的内部状态的表示。 这个函数永远不会被调用为null状态。

Parameters
state Parcelable: The frozen state that had previously been returned by onSaveInstanceState().

onSaveInstanceState

Parcelable onSaveInstanceState ()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 此状态应仅包含不持久或以后不能重建的信息。 例如,您永远不会将当前位置存储在屏幕上,因为当视图的新实例放置在其视图层次结构中时会再次计算该位置。

您可能在此处存储的某些示例:文本视图中的当前光标位置(但通常不是文本本身,因为它存储在内容提供程序或其他永久性存储中),即当前在列表视图中选择的项目。

Returns
Parcelable Returns a Parcelable object containing the view's current dynamic state, or null if there is nothing interesting to save. The default implementation returns null.

Hooray!