Materialdesign-Suchleiste für Android
Diese schöne und benutzerfreundliche Bibliothek hilft Ihnen dabei, Lollipop Material Design SearchView in Ihr Projekt einzufügen.
So fügen Sie SearchBar Ihrem Projekt hinzu:
Fügen Sie diesen Code zur Datei build.gradle auf Projektebene hinzu
allprojects {
repositories {
.. .
maven { url " https://jitpack.io " }
}
}
Fügen Sie die Abhängigkeit zur Datei build.gradle auf App-Ebene hinzu
dependencies {
implementation ' com.github.mancj:MaterialSearchBar:X.X.X '
}
Fügen Sie dann SearchBar zu Ihrer Aktivität hinzu:
< com .mancj.materialsearchbar.MaterialSearchBar
style = " @style/MaterialSearchBarLight "
app : mt_speechMode = " true "
app : mt_hint = " Custom hint "
app : mt_maxSuggestionsCount = " 10 "
android : layout_width = " match_parent "
android : layout_height = " wrap_content "
android : id = " @+id/searchBar " />
MaterialSearchBar verfügt über die folgenden XML-Attribute:
Attribut | Beschreibung |
---|---|
mt_speechMode | Wenn es auf „true“ gesetzt ist, wird das Mikrofonsymbol anstelle des Suchsymbols angezeigt |
mt_maxSuggestionsCount | Gibt die maximale Anzahl der gespeicherten Suchanfragen an |
mt_navIconEnabled | Navigationssymbol aktivieren |
mt_roundedSearchBarEnabled | Verwenden Sie die kapselförmige Suchleiste in Version 21+ und kehren Sie in der unteren Version zur Standardeinstellung zurück |
mt_dividerColor | Legen Sie die Farben der Vorschlags- und Menütrenner fest |
mt_searchBarColor | Legen Sie die Hauptfarbe der Suchleiste fest |
mt_menuIconDrawable | Zeichenbares Menüsymbol festlegen |
mt_searchIconDrawable | Legen Sie fest, dass das Suchsymbol gezeichnet werden kann, wenn der Sprachmodus auf „Falsch“ gesetzt ist |
mt_speechIconDrawable | Legen Sie die Zeichenbarkeit des Sprachsymbols fest, wenn der Sprachmodus wahr ist |
mt_backIconDrawable | Zeichenbares Symbol für den Zurück-Pfeil festlegen |
mt_clearIconDrawable | Zeichnen Sie das klare Symbol auf |
mt_navIconTint | Legen Sie die Farbtonfarbe des animierten Navigations-/Zurück-Symbols fest |
mt_menuIconTint | Legen Sie die Farbtonfarbe des Menüsymbols fest |
mt_searchIconTint | Such-/Sprachsymbol für Farbton festlegen |
mt_backIconTint | Legen Sie die Farbtonfarbe des Zurück-Pfeilsymbols fest |
mt_clearIconTint | Legen Sie die Tönungsfarbe des Klarsymbols fest |
mt_navIconUseTint | Sollte das animierte Navigationssymbol eine Tönungsfarbe verwenden? |
mt_menuIconUseTint | Soll das Menüsymbol die Tönungsfarbe verwenden? |
mt_searchIconUseTint | Sollte das Such-/Sprachsymbol die Tönungsfarbe verwenden? |
mt_backIconUseTint | Sollte das hintere Symbol die Tönungsfarbe verwenden? |
mt_clearIconUseTint | Sollte das klare Symbol die Tönungsfarbe verwenden? |
mt_hint | Legen Sie den Text des Hinweises fest, wenn die Suchleiste fokussiert und die Suchabfrage leer ist |
mt_placeholder | Legen Sie den Platzhaltertext fest, wenn die MaterialSearchBar nicht fokussiert ist |
mt_textColor | Textfarbe festlegen |
mt_hintColor | Hinweisfarbe festlegen |
mt_placeholderColor | Platzhalterfarbe festlegen |
mt_textCursorTint | Legen Sie den Farbton für Textcursor fest |
mt_highlightedTextColor | Legen Sie die Tönungsfarbe für die Texthervorhebung fest |
öffentliche Methoden:
addTextChangeListener(TextWatcher textWatcher)
clearSuggestions()
closeSearch()
openSearch()
getLastSuggestions()
getMenu()
getText()
hideSuggestionList()
inflateMenu(int menuResource)
inflateMenu(int menuResource, int icon)
isSearchOpened()
isSpeechModeEnabled()
isSuggestionsVisible()
setArrowIcon(int arrowIconResId)
setArrowIconTint(int arrowIconTint)
setCardViewElevation(int elevation)
setClearIcon(int clearIconResId)
setClearIconTint(int clearIconTint)
setCustomSuggestionAdapter(SuggestionsAdapter suggestionAdapter)
setDividerColor(int dividerColor)
setHint(CharSequence hintText)
setIconRippleStyle(boolean borderlessRippleEnabled)
setLastSuggestions(List suggestions)
setMaxSuggestionCount(int maxSuggestionsCount)
setMenuDividerEnabled(boolean menuDividerEnabled)
setMenuIcon(int menuIconResId)
setMenuIconTint(int menuIconTint)
setNavButtonEnabled(boolean navButtonEnabled)
setNavIconTint(int navIconTint)
setOnSearchActionListener(OnSearchActionListener onSearchActionListener)
setPlaceHolder(CharSequence placeholder)
setPlaceHolderColor(int placeholderColor)
setRoundedSearchBarEnabled(boolean roundedSearchBarEnabled)
setSearchIcon(int searchIconResId)
setSearchIconTint(int searchIconTint)
setSpeechModeEnabled(boolean speechMode)
setSuggestionsClickListener(SuggestionsAdapter.OnItemViewClickListener listener)
setText(String text)
setTextColor(int textColor)
setTextHighlightColor(int highlightedTextColor)
setTextHintColor(int hintColor)
showSuggestions()
updateLastSuggestions(List suggestions)
Styling-Material-Suchleiste
Benutzerdefinierter Stil – Styles.xml Erstellen Sie einen benutzerdefinierten Stil und verwenden Sie einen der bereitgestellten Stile als übergeordneten Stil.
Provided Styles are: MaterialSearchBarLight and MaterialSearchBarDark
Example:
< style name = " MyCustomTheme " parent = " MaterialSearchBarLight " >
< item name = " mt_searchBarColor " >@color/searchBarPrimaryColor</ item >
< item name = " mt_dividerColor " >@color/searchBarDividerColor</ item >
< item name = " mt_navIconTint " >@color/searchBarNavIconTintColor</ item >
< item name = " mt_searchIconTint " >@color/searchBarSearchIconTintColor</ item >
< item name = " mt_clearIconTint " >@color/searchBarClearIconTintColor</ item >
< item name = " mt_menuIconTint " >@color/searchBarMenuIconTintColor</ item >
< item name = " mt_backIconTint " >@color/searchBarBackIconTintColor</ item >
< item name = " mt_textCursorTint " >@color/searchBarCursorColor</ item >
< item name = " mt_textColor " >@color/searchBarTextColor</ item >
< item name = " mt_hintColor " >@color/searchBarHintColor</ item >
< item name = " mt_placeholderColor " >@color/searchBarPlaceholderColor</ item >
< item name = " mt_highlightedTextColor " >@color/searchBarTextHighlightColor</ item >
</ style >
ODER
Benutzerdefinierte Farben – farben.xml Legen Sie einfach diese Farben (oder einige) fest bzw. ändern Sie sie und schon haben Sie Ihren individuellen Stil.
//Material SearchBar Light Theme Colors
< color name = " searchBarIconColor " >#3a3a3a</ color >
//Base
< color name = " searchBarPrimaryColor " >#FFFFFF</ color >
< color name = " searchBarCursorColor " >#8000a1ff</ color >
< color name = " searchBarDividerColor " >#1F000000</ color >
//Icons
< color name = " searchBarNavIconTintColor " >@color/searchBarIconColor</ color >
< color name = " searchBarMenuIconTintColor " >@color/searchBarIconColor</ color >
< color name = " searchBarSearchIconTintColor " >@color/searchBarIconColor</ color >
< color name = " searchBarClearIconTintColor " >@color/searchBarIconColor</ color >
< color name = " searchBarBackIconTintColor " >@color/searchBarIconColor</ color >
//Text
< color name = " searchBarTextColor " >#DE000000</ color >
< color name = " searchBarHintColor " >#42000000</ color >
< color name = " searchBarPlaceholderColor " >#8A000000</ color >
< color name = " searchBarTextHighlightColor " >#8000a1ff</ color >
//Base
< color name = " searchBarPrimaryColorDark " >#303030</ color >
< color name = " searchBarDividerColorDark " >#1FFFFFFF</ color >
//Material SearchBar Dark Theme Colors
< color name = " searchBarIconColorDark " >#00a1ff</ color >
//Icons
< color name = " searchBarNavIconTintColorDark " >@color/searchBarIconColorDark</ color >
< color name = " searchBarMenuIconTintColorDark " >@color/searchBarIconColorDark</ color >
< color name = " searchBarSearchIconTintColorDark " >@color/searchBarIconColorDark</ color >
< color name = " searchBarClearIconTintColorDark " >@color/searchBarIconColorDark</ color >
< color name = " searchBarBackIconTintColorDark " >@color/searchBarIconColorDark</ color >
//Text
< color name = " searchBarTextColorDark " >#DEFFFFFF</ color >
< color name = " searchBarHintColorDark " >#42FFFFFF</ color >
< color name = " searchBarPlaceholderColorDark " >#8AFFFFFF</ color >
< color name = " searchBarTextHighlightColorDark " >#BF00a1ff</ color >
Um Suchanfragen zu speichern, wenn die Aktivität zerstört wird, verwenden Sie die Methode searchBar.getLastSuggestions()
und anschließend, um sie wiederherzustellen, searchBar.setLastSuggestions(List<String>);
wie im Beispiel unten gezeigt
Hier ist ein einfaches Beispiel für die Verwendung von MaterialSearchBar
private List < String > lastSearches ;
private MaterialSearchBar searchBar ;
@ Override
protected void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . activity_main );
searchBar = ( MaterialSearchBar ) findViewById ( R . id . searchBar );
searchBar . setHint ( "Custom hint" );
searchBar . setSpeechMode ( true );
//enable searchbar callbacks
searchBar . setOnSearchActionListener ( this );
//restore last queries from disk
lastSearches = loadSearchSuggestionFromDisk ();
searchBar . setLastSuggestions ( list );
//Inflate menu and setup OnMenuItemClickListener
searchBar . inflateMenu ( R . menu . main );
searchBar . getMenu (). setOnMenuItemClickListener ( this );
}
@ Override
protected void onDestroy () {
super . onDestroy ();
//save last queries to disk
saveSearchSuggestionToDisk ( searchBar . getLastSuggestions ());
}
@ Override
public void onSearchStateChanged ( boolean enabled ) {
String s = enabled ? "enabled" : "disabled" ;
Toast . makeText ( MainActivity . this , "Search " + s , Toast . LENGTH_SHORT ). show ();
}
@ Override
public void onSearchConfirmed ( CharSequence text ) {
startSearch ( text . toString (), true , null , true );
}
@ Override
public void onButtonClicked ( int buttonCode ) {
switch ( buttonCode ){
case MaterialSearchBar . BUTTON_NAVIGATION :
drawer . openDrawer ( Gravity . LEFT );
break ;
case MaterialSearchBar . BUTTON_SPEECH :
openVoiceRecognizer ();
}
}
Weitere Beispiele