web-dev-qa-db-fra.com

Comment implémenter la barre de recherche comme l'application Gmail dans Android?

J'essaie d'implémenter la fonctionnalité Search dans mon Android similaire à la dernière application gmail (icône de recherche dans la barre d'action).

enter image description here

En appuyant sur l'icône Rechercher, la barre d'action se transforme en champ de recherche avec un bouton de retour sur le côté gauche et un bouton de microphone sur le côté droit. Je veux avoir le même composant dans mon application.

Existe-t-il une bibliothèque ou un tutoriel pour cela?

Est-il possible de prendre en charge ce type de recherche de conception de matériau dans les versions non Lollipop également. ?

23
Saran

Cette bibliothèque pour ce faire, la seule chose qu'elle ne fait pas, c'est les ondulations, mais je pense que vous pouvez les implémenter assez facilement avec d'autres ressources:

https://github.com/Quinny898/PersistentSearch

Voici l'image du travail qui y est fait.

enter image description here

8
Murali Kathir

je ne connais pas la version de Lollipop, mais si vous voulez une recherche comme ça, vous pouvez ajouter cette "main_activity_actions" à votre barre d'action:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
      xmlns:yourapp="http://schemas.Android.com/apk/res-auto" >
    <item Android:id="@+id/action_search"
          Android:title="@string/action_search"
          Android:icon="@drawable/ic_action_search"
          yourapp:showAsAction="ifRoom|collapseActionView"
          yourapp:actionViewClass="Android.support.v7.widget.SearchView" />
</menu>

et remplacez cela dans votre Java:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_activity_actions, menu);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    // Configure the search info and add any event listeners
    ...
    return super.onCreateOptionsMenu(menu);
}

plus d'informations ici , c'est la partie du dictionnaire mais c'est la même idée, à bientôt!

12
Carlos Carrizales

Il existe deux API prêtes à l'emploi fournies par Google appelées Boîte de dialogue de recherche et Vue de recherche. Vous pouvez utiliser l'un ou l'autre - ou les deux - pour implémenter le comportement souhaité. Il vous donne déjà beaucoup de ce que vous voulez. Le lien suivant contient un tutoriel: http://developer.Android.com/guide/topics/search/search-dialog.html