web-dev-qa-db-fra.com

Ajouter une barre d'outils de recherche sur google map comme dans l'application native Android

Je veux implémenter la barre d'outils de recherche comme dans l'application google maps native. Comment puis-je faire cela? Peut-être existe-t-il un moyen natif d'implémenter cette fonctionnalité?

snapshot from google maps app

24
Andrew F

Vous devriez opter pour AutoSuggestEditext et donner un effet de fond comme google have et mettre l'image gauche et droite par Relativelayout

Voici un exemple de suggestion automatique pour la recherche de lieux.

Place automatique terminée

J'espère que vous comprendrez.

7
Herry

Vous pouvez utiliser EditText ou TextWatcher. J'ai utilisé un EditText et un bouton Rechercher. Avec ce clic sur le bouton, il recherche l'emplacement.

Voici mon code sur le bouton:

button1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            String g = searchview.getText().toString();

            Geocoder geocoder = new Geocoder(getBaseContext());
            List<Address> addresses = null;

            try {
                // Getting a maximum of 3 Address that matches the input
                // text
                addresses = geocoder.getFromLocationName(g, 3);
                if (addresses != null && !addresses.equals(""))
                    search(addresses);

            } catch (Exception e) {

            }

        }
    });

et voici la méthode de recherche

protected void search(List<Address> addresses) {

    Address address = (Address) addresses.get(0);
    home_long = address.getLongitude();
    home_lat = address.getLatitude();
    latLng = new LatLng(address.getLatitude(), address.getLongitude());

    addressText = String.format(
            "%s, %s",
            address.getMaxAddressLineIndex() > 0 ? address
                    .getAddressLine(0) : "", address.getCountryName());

    markerOptions = new MarkerOptions();

    markerOptions.position(latLng);
    markerOptions.title(addressText);

    map1.clear();
    map1.addMarker(markerOptions);
    map1.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    map1.animateCamera(CameraUpdateFactory.zoomTo(15));
    locationTv.setText("Latitude:" + address.getLatitude() + ", Longitude:"
            + address.getLongitude());


}

Modifié - pour le code xml

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:context="com.example.google_map.MainActivity" >

 <fragment
    Android:id="@+id/map"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentTop="true"
    class="com.google.Android.gms.maps.SupportMapFragment" />

<TextView
    Android:id="@+id/latlongLocation"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentLeft="true"
    Android:layout_alignRight="@+id/searchView1"
    Android:background="#ff058fff"
    Android:gravity="bottom"
    Android:paddingBottom="5dp"
    Android:paddingLeft="5dp"
    Android:paddingRight="5dp"
    Android:paddingTop="5dp"
    Android:textColor="#ffffffff" />

<EditText
    Android:id="@+id/searchView1"
    Android:layout_width="250dp"
    Android:layout_height="34dp"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentTop="true"
    Android:layout_marginLeft="18dp"
    Android:layout_marginTop="14dp"
    Android:hint="Search Location"
    Android:textColor="@Android:color/black"
    Android:background="@Android:color/white" >
</EditText>

<Button
    Android:id="@+id/button1"
    Android:layout_width="28dp"
    Android:layout_height="25dp"
    Android:layout_alignBaseline="@+id/searchView1"
    Android:layout_alignBottom="@+id/searchView1"
    Android:layout_alignRight="@+id/searchView1"
    Android:background="@drawable/g_search_btn" /></RelativeLayout>
14
Jishant

Si vous souhaitez obtenir la vue Like Search View de Google map. Ensuite, vous pouvez utiliser n'importe qui de moins de deux bibliothèque impressionnante.

1) Vue de recherche flottante

Ajoutez la dépendance ci-dessous à votre fichier de notes:

compile 'com.github.arimorty:floatingsearchview:2.0.3'

Exemple:

   <com.arlib.floatingsearchview.FloatingSearchView
            Android:id="@+id/floating_search_view"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            app:floatingSearch_searchBarMarginLeft="@dimen/search_view_inset"
            app:floatingSearch_searchBarMarginTop="@dimen/search_view_inset"
            app:floatingSearch_searchBarMarginRight="@dimen/search_view_inset"
            app:floatingSearch_searchHint="Search..."
            app:floatingSearch_suggestionsListAnimDuration="250"
            app:floatingSearch_showSearchKey="false"
            app:floatingSearch_leftActionMode="showHamburger"
            app:floatingSearch_menu="@menu/menu_main"
            app:floatingSearch_close_search_on_keyboard_dismiss="true"/>

2) SearchView

Ajoutez la dépendance ci-dessous à votre fichier de notes:

compile 'com.lapism:searchview:4.0'

Exemple:

<com.lapism.searchview.SearchView
    Android:id="@+id/searchView"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent" />
10
Priyank Patel

Cela pourrait aider quelqu'un qui souhaite ajouter une barre de recherche avec Google maps API Google Adresses

1
Rahul Chaurasia