MaterialSearchBar
MaterialSearchBar 0.8.5
Android용 머티리얼 디자인 검색창
이 아름답고 사용하기 쉬운 라이브러리는 프로젝트에 Lollipop Material Design 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_max제안 개수 | 저장된 최대 검색어 수를 지정합니다. |
mt_navIcon활성화됨 | 탐색 아이콘을 활성화하도록 설정 |
mt_roundedSearchBarEnabled | v21+에서는 캡슐 모양의 검색 표시줄을 사용하고 낮은 버전에서는 기본값으로 되돌립니다. |
mt_divider색상 | 제안 및 메뉴 구분선의 색상을 설정합니다. |
mt_searchBar색상 | 검색창의 기본 색상을 설정하세요 |
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_text색상 | 텍스트 색상 설정 |
mt_hint색상 | 힌트 색상 설정 |
mt_placeholder색상 | 자리 표시자 색상 설정 |
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 사용자 정의 스타일을 생성하고 제공된 스타일 중 하나를 상위 스타일로 사용합니다.
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 ();
}
}
더 많은 예