1 Star 0 Fork 0

foxnick / PersistentSearch

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
Apache-2.0

This project is deprecated

It's not been maintained for well over half a year and is formally discontinued. There are better alternatives now, such as SearchView and FloatingSearchView

Android Persistent Search Library

A library that implements the persistent search bar seen on apps such as Google Now, Google Maps and Google Play

GIF of its use

Usage

Android Studio: Add the Sonatype repository if you have not already:

maven {
        url "https://oss.sonatype.org/content/repositories/snapshots"
    }

Import it as a dependency:

compile 'com.quinny898.library.persistentsearch:library:1.1.0-SNAPSHOT'

Eclipse: Import it as a library project

In your layout:

<com.quinny898.library.persistentsearch.SearchBox
        android:layout_width="wrap_content"
		android:layout_height="wrap_content"
        android:id="@+id/searchbox"
        />

Please include this after any elements you wish to be hidden by it in a releativelayout.

Absolute requirements in the activity code

In your onCreate/onCreateView (activity or fragment):

search.enableVoiceRecognition(this);

And in the same class:

@Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (isAdded() && requestCode == SearchBox.VOICE_RECOGNITION_CODE && resultCode == getActivity().RESULT_OK) {
      ArrayList<String> matches = data
          .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
      search.populateEditText(matches);
    }
    super.onActivityResult(requestCode, resultCode, data);
}

More on implementation:

search = (SearchBox) findViewById(R.id.searchbox);
for(int x = 0; x < 10; x++){
	SearchResult option = new SearchResult("Result " + Integer.toString(x), getResources().getDrawable(R.drawable.ic_history));
	search.addSearchable(option);
}		
search.setLogoText("My App");
search.setMenuListener(new MenuListener(){

		@Override
		public void onMenuClick() {
			//Hamburger has been clicked
			Toast.makeText(MainActivity.this, "Menu click", Toast.LENGTH_LONG).show();				
		}
			
	});
search.setSearchListener(new SearchListener(){

	@Override
	public void onSearchOpened() {
		//Use this to tint the screen
	}

	@Override
	public void onSearchClosed() {
		//Use this to un-tint the screen
	}

	@Override
	public void onSearchTermChanged() {
		//React to the search term changing
		//Called after it has updated results
	}

	@Override
	public void onSearch(String searchTerm) {
		Toast.makeText(MainActivity.this, searchTerm +" Searched", Toast.LENGTH_LONG).show();
		
	}
	
	@Override
	public void onResultClick(SearchResult result){
		//React to a result being clicked
	}
	
	
	@Override
	public void onSearchCleared() {
				
	}
			
});

##Showing from a MenuItem

search.revealFromMenuItem(R.id.action_search, this);

Note that when a search occurs, the box closes. You should react to this in onSearch, maybe set your toolbar title?

Custom

Set the logo text color:

search.setLogoTextColor(Color.parse("#000000"));

SearchResult

This is a class that holds two parameters - Title and icon
The title is displayed as a suggested result and will be used for searching, the icon is displayed to the left of the title in the suggestions (eg. a history icon)
You can make a SearchResult as follows

new SearchResult("Title", getResources().getDrawable(R.drawable.icon));

All usage methods

See here for the documentation: http://quinny898.co.uk/PersistentSearch/

Licence

Copyright 2015 Kieron Quinn

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

## This project is deprecated It's not been maintained for well over half a year and is formally discontinued. There are better alternatives now, such as [SearchView](https://github.com/lapism/SearchView) and [FloatingSearchView](https://github.com/arimorty/floatingsearchview) # Android Persistent Search Library A library that implements the persistent search bar seen on apps such as Google Now, Google Maps and Google Play ![GIF of its use](https://raw.githubusercontent.com/Quinny898/PersistentSearch/master/resources/search.gif) ## Usage Android Studio: Add the Sonatype repository if you have not already: ``` maven { url "https://oss.sonatype.org/content/repositories/snapshots" } ``` Import it as a dependency: ``` compile 'com.quinny898.library.persistentsearch:library:1.1.0-SNAPSHOT' ``` Eclipse: Import it as a library project In your layout: ``` <com.quinny898.library.persistentsearch.SearchBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/searchbox" /> ``` Please include this after any elements you wish to be hidden by it in a releativelayout. **Absolute requirements in the activity code** In your onCreate/onCreateView (activity or fragment): ``` search.enableVoiceRecognition(this); ``` And in the same class: ``` @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (isAdded() && requestCode == SearchBox.VOICE_RECOGNITION_CODE && resultCode == getActivity().RESULT_OK) { ArrayList<String> matches = data .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); search.populateEditText(matches); } super.onActivityResult(requestCode, resultCode, data); } ``` More on implementation: ``` search = (SearchBox) findViewById(R.id.searchbox); for(int x = 0; x < 10; x++){ SearchResult option = new SearchResult("Result " + Integer.toString(x), getResources().getDrawable(R.drawable.ic_history)); search.addSearchable(option); } search.setLogoText("My App"); search.setMenuListener(new MenuListener(){ @Override public void onMenuClick() { //Hamburger has been clicked Toast.makeText(MainActivity.this, "Menu click", Toast.LENGTH_LONG).show(); } }); search.setSearchListener(new SearchListener(){ @Override public void onSearchOpened() { //Use this to tint the screen } @Override public void onSearchClosed() { //Use this to un-tint the screen } @Override public void onSearchTermChanged() { //React to the search term changing //Called after it has updated results } @Override public void onSearch(String searchTerm) { Toast.makeText(MainActivity.this, searchTerm +" Searched", Toast.LENGTH_LONG).show(); } @Override public void onResultClick(SearchResult result){ //React to a result being clicked } @Override public void onSearchCleared() { } }); ``` ##Showing from a MenuItem ``` search.revealFromMenuItem(R.id.action_search, this); ``` Note that when a search occurs, the box closes. You should react to this in onSearch, maybe set your toolbar title? ## Custom Set the logo text color: ``` search.setLogoTextColor(Color.parse("#000000")); ``` ## SearchResult This is a class that holds two parameters - Title and icon<br /> The title is displayed as a suggested result and will be used for searching, the icon is displayed to the left of the title in the suggestions (eg. a history icon)<br /> You can make a SearchResult as follows<br /> ``` new SearchResult("Title", getResources().getDrawable(R.drawable.icon)); ``` ## All usage methods See here for the documentation: http://quinny898.co.uk/PersistentSearch/ ## Licence Copyright 2015 Kieron Quinn<br /> <br /> Licensed under the Apache License, Version 2.0 (the "License");<br /> you may not use this file except in compliance with the License.<br /> You may obtain a copy of the License at<br /> <br /> http://www.apache.org/licenses/LICENSE-2.0<br /> <br /> Unless required by applicable law or agreed to in writing, software<br /> distributed under the License is distributed on an "AS IS" BASIS,<br /> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br /> See the License for the specific language governing permissions and<br /> limitations under the License.

About

No description expand collapse
Java
Apache-2.0
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/foxnick/persistent-search.git
git@gitee.com:foxnick/persistent-search.git
foxnick
persistent-search
PersistentSearch
master

Search

344bd9b3 5694891 D2dac590 5694891