SearchBar
public
class
SearchBar
extends Toolbar
| java.lang.Object | ||||
| ↳ | android.view.View | |||
| ↳ | android.view.ViewGroup | |||
| ↳ | androidx.appcompat.widget.Toolbar | |||
| ↳ | com.google.android.material.search.SearchBar | |||
The SearchBar represents a floating search field with affordances for search and
navigation.
Note: SearchBar does not support the Toolbar.setTitle(int) and Toolbar.setSubtitle(int)
methods, or their corresponding xml attributes. Instead, use setHint(int) or setText(int), or their corresponding xml attributes, to provide a text affordance for your SearchBar.
The example below shows how to use the SearchBar and SearchView together:
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- NestedScrollingChild goes here (NestedScrollView, RecyclerView, etc.). -->
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/searchbar_scrolling_view_behavior">
<!-- Screen content goes here. -->
</androidx.core.widget.NestedScrollView>
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.search.SearchBar
android:id="@+id/search_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/searchbar_hint" />
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.search.SearchView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="@string/searchbar_hint"
app:layout_anchor="@id/search_bar">
<!-- Search suggestions/results go here (ScrollView, RecyclerView, etc.). -->
</com.google.android.material.search.SearchView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
For more information, see the component developer guidance and design guidelines.
Summary
Nested classes | |
|---|---|
class |
SearchBar.OnLoadAnimationCallback
Callback for the animation started and stopped via |
class |
SearchBar.ScrollingViewBehavior
Behavior that sets up the scroll-away mode for an |
Inherited constants |
|---|
Inherited fields |
|---|
Public constructors | |
|---|---|
SearchBar(Context context)
|
|
SearchBar(Context context, AttributeSet attrs)
|
|
SearchBar(Context context, AttributeSet attrs, int defStyleAttr)
|
|
Public methods | |
|---|---|
void
|
addCollapseAnimationListener(AnimatorListenerAdapter listener)
Adds a listener for the collapse animation started via |
void
|
addExpandAnimationListener(AnimatorListenerAdapter listener)
Adds a listener for the expand animation started via |
void
|
addOnLoadAnimationCallback(SearchBar.OnLoadAnimationCallback onLoadAnimationCallback)
Registers a callback for the On Load Animation, started and stopped via |
void
|
addView(View child, int index, ViewGroup.LayoutParams params)
|
void
|
clearText()
Clears the text of main |
boolean
|
collapse(View expandedView)
|
boolean
|
collapse(View expandedView, AppBarLayout appBarLayout)
|
boolean
|
collapse(View expandedView, AppBarLayout appBarLayout, boolean skipAnimation)
Starts a collapse animation, if it's not already started, which transitions from the |
boolean
|
expand(View expandedView, AppBarLayout appBarLayout)
|
boolean
|
expand(View expandedView)
|
boolean
|
expand(View expandedView, AppBarLayout appBarLayout, boolean skipAnimation)
Starts an expand animation, if it's not already started, which transitions from the |
View
|
getCenterView()
Returns the optional centered child view of this |
float
|
getCornerSize()
Returns the size in pixels of the |
CharSequence
|
getHint()
Returns the hint of main |
int
|
getStrokeColor()
Returns the color of the |
float
|
getStrokeWidth()
Returns the width in pixels of the |
CharSequence
|
getText()
Returns the text of main |
TextView
|
getTextView()
Returns the main |
void
|
inflateMenu(int resId)
|
boolean
|
isCollapsing()
Returns whether the collapse animation is running. |
boolean
|
isDefaultScrollFlagsEnabled()
Returns whether the default |
boolean
|
isExpanding()
Returns whether the expand animation is running. |
boolean
|
isOnLoadAnimationFadeInEnabled()
Returns whether the fade in part is enabled for the on load animation. |
void
|
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)
|
boolean
|
removeCollapseAnimationListener(AnimatorListenerAdapter listener)
Removes a listener for the collapse animation started via |
boolean
|
removeExpandAnimationListener(AnimatorListenerAdapter listener)
Removes a listener for the expand animation started via |
boolean
|
removeOnLoadAnimationCallback(SearchBar.OnLoadAnimationCallback onLoadAnimationCallback)
Unregisters a callback for the On Load Animation, started and stopped via |
void
|
setCenterView(View view)
Sets the center view as a child. |
void
|
setDefaultScrollFlagsEnabled(boolean defaultScrollFlagsEnabled)
Sets whether the default |
void
|
setElevation(float elevation)
|
void
|
setHint(CharSequence hint)
Sets the hint of main |
void
|
setHint(int hintResId)
Sets the hint of main |
void
|
setNavigationIcon(Drawable navigationIcon)
|
void
|
setNavigationOnClickListener(View.OnClickListener listener)
|
void
|
setOnLoadAnimationFadeInEnabled(boolean onLoadAnimationFadeInEnabled)
Sets whether the fade in part is enabled for the on load animation. |
void
|
setStrokeColor(int strokeColor)
Sets the color of the |
void
|
setStrokeWidth(float strokeWidth)
Sets the width in pixels of the |
void
|
setSubtitle(CharSequence subtitle)
|
void
|
setText(int textResId)
Sets the text of main |
void
|
setText(CharSequence text)
Sets the text of main |
void
|
setTitle(CharSequence title)
|
void
|
startOnLoadAnimation()
Starts the on load animation which transitions from the center view to the hint |
void
|
stopOnLoadAnimation()
Stops the on load animation which transitions from the center view to the hint |
Protected methods | |
|---|---|
void
|
onAttachedToWindow()
|
void
|
onLayout(boolean changed, int left, int top, int right, int bottom)
|
void
|
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
|
void
|
onRestoreInstanceState(Parcelable state)
|
Parcelable
|
onSaveInstanceState()
|
Inherited methods | |
|---|---|
Public constructors
SearchBar
public SearchBar (Context context)
| Parameters | |
|---|---|
context |
Context |
SearchBar
public SearchBar (Context context,
AttributeSet attrs)| Parameters | |
|---|---|
context |
Context |
attrs |
AttributeSet |
SearchBar
public SearchBar (Context context,
AttributeSet attrs,
int defStyleAttr)| Parameters | |
|---|---|
context |
Context |
attrs |
AttributeSet |
defStyleAttr |
int |
Public methods
addCollapseAnimationListener
public void addCollapseAnimationListener (AnimatorListenerAdapter listener)
Adds a listener for the collapse animation started via collapse(View) and collapse(View, AppBarLayout).
| Parameters | |
|---|---|
listener |
AnimatorListenerAdapter |
addExpandAnimationListener
public void addExpandAnimationListener (AnimatorListenerAdapter listener)
Adds a listener for the expand animation started via expand(View) and expand(View, AppBarLayout).
| Parameters | |
|---|---|
listener |
AnimatorListenerAdapter |
addOnLoadAnimationCallback
public void addOnLoadAnimationCallback (SearchBar.OnLoadAnimationCallback onLoadAnimationCallback)
Registers a callback for the On Load Animation, started and stopped via startOnLoadAnimation() and stopOnLoadAnimation().
| Parameters | |
|---|---|
onLoadAnimationCallback |
SearchBar.OnLoadAnimationCallback |
addView
public void addView (View child,
int index,
ViewGroup.LayoutParams params)| Parameters | |
|---|---|
child |
View |
index |
int |
params |
ViewGroup.LayoutParams |
collapse
public boolean collapse (View expandedView)
See collapse(View, AppBarLayout, boolean).
| Parameters | |
|---|---|
expandedView |
View |
| Returns | |
|---|---|
boolean |
|
collapse
public boolean collapse (View expandedView,
AppBarLayout appBarLayout)See collapse(View, AppBarLayout, boolean).
| Parameters | |
|---|---|
expandedView |
View |
appBarLayout |
AppBarLayout |
| Returns | |
|---|---|
boolean |
|
collapse
public boolean collapse (View expandedView,
AppBarLayout appBarLayout,
boolean skipAnimation)Starts a collapse animation, if it's not already started, which transitions from the expandedView, e.g., a contextual Toolbar, to the SearchBar.
Note: If you are using an AppBarLayout in conjunction with the SearchBar,
you may pass in a reference to your AppBarLayout so that its visibility and offset can
be taken into account for the animation.
| Parameters | |
|---|---|
expandedView |
View |
appBarLayout |
AppBarLayout |
skipAnimation |
boolean |
| Returns | |
|---|---|
boolean |
whether or not the collapse animation was started |
expand
public boolean expand (View expandedView,
AppBarLayout appBarLayout)See expand(View, AppBarLayout, boolean).
| Parameters | |
|---|---|
expandedView |
View |
appBarLayout |
AppBarLayout |
| Returns | |
|---|---|
boolean |
|
expand
public boolean expand (View expandedView)
See expand(View, AppBarLayout, boolean).
| Parameters | |
|---|---|
expandedView |
View |
| Returns | |
|---|---|
boolean |
|
expand
public boolean expand (View expandedView,
AppBarLayout appBarLayout,
boolean skipAnimation)Starts an expand animation, if it's not already started, which transitions from the SearchBar to the expandedView, e.g., a contextual Toolbar.
Note: If you are using an AppBarLayout in conjunction with the SearchBar,
you may pass in a reference to your AppBarLayout so that its visibility and offset can
be taken into account for the animation.
| Parameters | |
|---|---|
expandedView |
View |
appBarLayout |
AppBarLayout |
skipAnimation |
boolean |
| Returns | |
|---|---|
boolean |
whether or not the expand animation was started |
getCenterView
public View getCenterView ()
Returns the optional centered child view of this SearchBar
| Returns | |
|---|---|
View |
|
getCornerSize
public float getCornerSize ()
Returns the size in pixels of the SearchBar corners.
| Returns | |
|---|---|
float |
|
getStrokeColor
public int getStrokeColor ()
Returns the color of the SearchBar outline stroke.
| Returns | |
|---|---|
int |
|
getStrokeWidth
public float getStrokeWidth ()
Returns the width in pixels of the SearchBar outline stroke.
| Returns | |
|---|---|
float |
|
getText
public CharSequence getText ()
Returns the text of main TextView, which usually represents the search text.
| Returns | |
|---|---|
CharSequence |
|
getTextView
public TextView getTextView ()
Returns the main TextView which can be used for hint and search text.
| Returns | |
|---|---|
TextView |
|
inflateMenu
public void inflateMenu (int resId)
| Parameters | |
|---|---|
resId |
int |
isCollapsing
public boolean isCollapsing ()
Returns whether the collapse animation is running.
| Returns | |
|---|---|
boolean |
|
isDefaultScrollFlagsEnabled
public boolean isDefaultScrollFlagsEnabled ()
Returns whether the default AppBarLayout scroll flags are enabled. See ERROR(/SearchBar#DEFAULT_SCROLL_FLAGS).
| Returns | |
|---|---|
boolean |
|
isExpanding
public boolean isExpanding ()
Returns whether the expand animation is running.
| Returns | |
|---|---|
boolean |
|
isOnLoadAnimationFadeInEnabled
public boolean isOnLoadAnimationFadeInEnabled ()
Returns whether the fade in part is enabled for the on load animation.
| Returns | |
|---|---|
boolean |
|
onInitializeAccessibilityNodeInfo
public void onInitializeAccessibilityNodeInfo (AccessibilityNodeInfo info)
| Parameters | |
|---|---|
info |
AccessibilityNodeInfo |
removeCollapseAnimationListener
public boolean removeCollapseAnimationListener (AnimatorListenerAdapter listener)
Removes a listener for the collapse animation started via collapse(View) and collapse(View, AppBarLayout).
| Parameters | |
|---|---|
listener |
AnimatorListenerAdapter |
| Returns | |
|---|---|
boolean |
true if a listener was removed as a result of this call |
removeExpandAnimationListener
public boolean removeExpandAnimationListener (AnimatorListenerAdapter listener)
Removes a listener for the expand animation started via expand(View) and expand(View, AppBarLayout).
| Parameters | |
|---|---|
listener |
AnimatorListenerAdapter |
| Returns | |
|---|---|
boolean |
true if a listener was removed as a result of this call |
removeOnLoadAnimationCallback
public boolean removeOnLoadAnimationCallback (SearchBar.OnLoadAnimationCallback onLoadAnimationCallback)
Unregisters a callback for the On Load Animation, started and stopped via startOnLoadAnimation() and stopOnLoadAnimation().
| Parameters | |
|---|---|
onLoadAnimationCallback |
SearchBar.OnLoadAnimationCallback |
| Returns | |
|---|---|
boolean |
|
setCenterView
public void setCenterView (View view)
Sets the center view as a child. Pass in null for view to remove the center view.
| Parameters | |
|---|---|
view |
View |
setDefaultScrollFlagsEnabled
public void setDefaultScrollFlagsEnabled (boolean defaultScrollFlagsEnabled)
Sets whether the default AppBarLayout scroll flags are enabled. See ERROR(/SearchBar#DEFAULT_SCROLL_FLAGS).
| Parameters | |
|---|---|
defaultScrollFlagsEnabled |
boolean |
setElevation
public void setElevation (float elevation)
| Parameters | |
|---|---|
elevation |
float |
setHint
public void setHint (CharSequence hint)
Sets the hint of main TextView.
| Parameters | |
|---|---|
hint |
CharSequence |
setHint
public void setHint (int hintResId)
Sets the hint of main TextView.
| Parameters | |
|---|---|
hintResId |
int |
setNavigationIcon
public void setNavigationIcon (Drawable navigationIcon)
| Parameters | |
|---|---|
navigationIcon |
Drawable |
setNavigationOnClickListener
public void setNavigationOnClickListener (View.OnClickListener listener)
| Parameters | |
|---|---|
listener |
View.OnClickListener |
setOnLoadAnimationFadeInEnabled
public void setOnLoadAnimationFadeInEnabled (boolean onLoadAnimationFadeInEnabled)
Sets whether the fade in part is enabled for the on load animation.
| Parameters | |
|---|---|
onLoadAnimationFadeInEnabled |
boolean |
setStrokeColor
public void setStrokeColor (int strokeColor)
Sets the color of the SearchBar outline stroke.
| Parameters | |
|---|---|
strokeColor |
int |
setStrokeWidth
public void setStrokeWidth (float strokeWidth)
Sets the width in pixels of the SearchBar outline stroke.
| Parameters | |
|---|---|
strokeWidth |
float |
setSubtitle
public void setSubtitle (CharSequence subtitle)
SearchBar does not support the Toolbar.setSubtitle(int) method, or its corresponding
xml attribute. Instead, use setHint(int) or setText(int), or their corresponding xml
attributes, to provide a text affordance for your SearchBar.
| Parameters | |
|---|---|
subtitle |
CharSequence |
setText
public void setText (int textResId)
Sets the text of main TextView.
| Parameters | |
|---|---|
textResId |
int |
setText
public void setText (CharSequence text)
Sets the text of main TextView.
| Parameters | |
|---|---|
text |
CharSequence |
setTitle
public void setTitle (CharSequence title)
SearchBar does not support the Toolbar.setTitle(int) method, or its corresponding
xml attribute. Instead, use setHint(int) or setText(int), or their corresponding xml
attributes, to provide a text affordance for your SearchBar.
| Parameters | |
|---|---|
title |
CharSequence |
startOnLoadAnimation
public void startOnLoadAnimation ()
Starts the on load animation which transitions from the center view to the hint TextView.
stopOnLoadAnimation
public void stopOnLoadAnimation ()
Stops the on load animation which transitions from the center view to the hint TextView.
Protected methods
onAttachedToWindow
protected void onAttachedToWindow ()
onLayout
protected void onLayout (boolean changed,
int left,
int top,
int right,
int bottom)| Parameters | |
|---|---|
changed |
boolean |
left |
int |
top |
int |
right |
int |
bottom |
int |
onMeasure
protected void onMeasure (int widthMeasureSpec,
int heightMeasureSpec)| Parameters | |
|---|---|
widthMeasureSpec |
int |
heightMeasureSpec |
int |
onRestoreInstanceState
protected void onRestoreInstanceState (Parcelable state)
| Parameters | |
|---|---|
state |
Parcelable |
onSaveInstanceState
protected Parcelable onSaveInstanceState ()
| Returns | |
|---|---|
Parcelable |
|
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.