Ich werde versuchen zu erklären, obwohl mein Englisch ein bisschen schlecht ist.
Estoy utilizando MaterialSearchView de Miguel Katalanisch: MaterialSearchView
Ich bin neu in Stackoverflow und sie nicht lassen Sie mich Bilder hochladen. Ich werde versuchen, es zu erklären. Der Hauptbildschirm meiner Anwendung hat eine MaterialSearchView in der Toolbar. Nach dem Drücken des Suchsymbols, bringt es mich zum Textfeld, in dem Sie suchen können
Ich möchte ein Kamerasymbol rechts neben dem "X" des SerchView setzen.Hinzufügen Kamera-Symbol in SearchView auf Android
Kann mir jemand helfen? Oder teilen Sie mir eine andere Suchkomponente mit, mit der Sie bei der Suche Symbole in der Suchleiste hinzufügen können?
EDIT
Ich habe die Lösung. Es ist nicht der professionellste Weg, aber es ist gültig. Im SearchView-Steuerelement habe ich zwei Bilder, eins für das X, um den gesuchten Text zu löschen (das ursprüngliche Symbol bleibt hinter der Kamera) und ein anderes für die Kamera (beide unsichtbar).
Layout/app_bar_home.xml:
<com.miguelcatalan.materialsearchview.MaterialSearchView
android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<ImageView android:id="@+id/imgClearSearch"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="right"
android:src="@drawable/ic_close_grease_small"
android:visibility="invisible"
android:layout_marginTop="18dp"
android:layout_marginRight="50dp" />
<ImageView
android:id="@+id/imgCamera"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:src="@drawable/ic_menu_camera"
android:visibility="invisible"
android:layout_marginTop="14dp"
android:layout_marginRight="8dp"
/>
</com.miguelcatalan.materialsearchview.MaterialSearchView>
Dann wird in der Java-Klasse, in den Hörer, zeigen wir Bilder, wenn der Sucher angezeigt wird, und sie verstecken, wenn der Sucher versteckt.
//Creamos los listeners de los buscadores
searchView = (MaterialSearchView) findViewById(R.id.searchView);
searchView.setVoiceSearch(false);
searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//Cuando pulsamos en buscar
String aa = "";
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
//Cuando teclemamos en el buscador
String aa = "";
if (newText.length() > 20)
searchView.setQuery(newText.substring(0, 20), false);
return false;
}
});
searchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
@Override
public void onSearchViewShown() {
imgCamera.setVisibility(View.VISIBLE);
imgClearSearch.setVisibility(View.VISIBLE);
//ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
//searchClose.setImageResource(R.drawable.ic_close_white);
Drawable closeIcon = getResources().getDrawable(R.drawable.ic_close_white);
searchView.setCloseIcon(closeIcon);
//Cuando mostramos el buscador
String aa = "";
}
@Override
public void onSearchViewClosed() {
//Cuando cerramos el buscador (tras haber buscado)
String aa = "";
imgCamera.setVisibility(View.INVISIBLE);
imgClearSearch.setVisibility(View.INVISIBLE);
}
});
Das einzige Problem ist, dass die X, die standardmäßig zu reinigen der Text der Sucher angezeigt wurde, noch zeigte, so habe ich einen kleinen Trick. Ich habe das standardmäßig angezeigte Icon durch ein weißes ersetzt, sodass es nicht sichtbar ist. Ich habe das auf der Linie setzen:
Drawable closeIcon = getResources().getDrawable(R.drawable.ic_close_white);
searchView.setCloseIcon(closeIcon);
Este es el resultado:
Bitte zeigen Sie, was Sie schon versucht, und wie funktioniert es nicht. – Nebril
Was soll ich tun, um meine eigene Frage als gelöst zu markieren? – BenjaminDIaz