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é?
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.
J'espère que vous comprendrez.
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>
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.
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" />
Cela pourrait aider quelqu'un qui souhaite ajouter une barre de recherche avec Google maps API Google Adresses