MaterialSearchBar
MaterialSearchBar 0.8.5
Android 用マテリアル デザイン検索バー
この美しく使いやすいライブラリは、プロジェクトに Lollipop マテリアル デザイン SearchView を追加するのに役立ちます。
SearchBar をプロジェクトに含めるには:
このコードをプロジェクト レベルの build.gradle ファイルに追加します。
allprojects {
repositories {
.. .
maven { url " https://jitpack.io " }
}
}
依存関係をアプリレベルの build.gradle ファイルに追加します
dependencies {
implementation ' com.github.mancj:MaterialSearchBar:X.X.X '
}
次に、SearchBar をアクティビティに追加します。
< 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 には次の XML 属性があります。
属性 | 説明 |
---|---|
mt_speechMode | true に設定すると、検索アイコンの代わりにマイク アイコンが表示されます。 |
mt_maxSuggestionsCount | 保存される検索クエリの最大数を指定します |
mt_navIconEnabled | ナビゲーションアイコンを有効に設定します |
mt_roundedSearchBarEnabled | v21 以降ではカプセル型の検索バーを使用し、それ以降ではデフォルトに戻す |
mt_dividerColor | 提案とメニューの区切り線の色を設定する |
mt_searchBarColor | 検索バーのメインカラーを設定します |
mt_menuIconDrawable | メニューアイコンのドローアブルを設定する |
mt_searchIconDrawable | 音声モードが false の場合に検索アイコンのドローアブルを設定します |
mt_speechIconDrawable | 音声モードが true の場合に音声アイコンのドローアブルを設定します |
mt_backIconDrawable | 戻る矢印アイコンのドローアブルを設定します |
mt_clearIconDrawable | クリアアイコンのドローアブルを設定する |
mt_navIconTint | ナビゲーション/バックアニメーションアイコンの色合いを設定します |
mt_menuIconTint | メニューアイコンの色合いを設定する |
mt_searchIconTint | ティントカラー検索/音声アイコンの設定 |
mt_backIconTint | 戻る矢印アイコンの色合いを設定する |
mt_clearIconTint | クリアアイコンの色合いを設定する |
mt_navIconUseTint | アニメーション化されたナビゲーション アイコンは色合いを使用する必要がありますか |
mt_menuIconUseTint | メニューアイコンは色合いを使用する必要がありますか |
mt_searchIconUseTint | 検索/音声アイコンに色合いを使用する必要がありますか? |
mt_backIconUseTint | 戻るアイコンは色合いを使用する必要がありますか |
mt_clearIconUseTint | クリアアイコンは色合いを使用する必要がありますか |
mt_ヒント | 検索バーがフォーカスされており、検索クエリが空の場合のヒントのテキストを設定します |
mt_placeholder | MaterialSearchBar がフォーカスされていないときにプレースホルダー テキストを設定します |
mt_textColor | テキストの色を設定する |
mt_hintColor | ヒントカラーを設定する |
mt_placeholderColor | プレースホルダーの色を設定する |
mt_textCursorTint | テキストカーソルの色合いを設定する |
mt_highlightedTextColor | テキストのハイライトの色合いを設定する |
パブリックメソッド:
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)
スタイリング マテリアルの検索バー
カスタム スタイル -styles.xmlカスタム スタイルを作成し、提供されたスタイルの 1 つを親として使用します。
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 >
または
カスタム カラー - Colors.xmlこれらの色 (または一部) を設定/変更するだけで、カスタム スタイルが完成します。
//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 >
アクティビティが破棄されたときに検索クエリを保存するには、メソッドsearchBar.getLastSuggestions()
を使用します。その後、検索クエリを復元するには、 searchBar.setLastSuggestions(List<String>);
以下の例に示すように
これは、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 ();
}
}
他の例