Set SearchView clear-Taste, Farbe
Erstelle ich ein searchview in der Symbolleiste mit onCreateOptionsMenu
, kann aber nicht die klare X
- Taste, um zunächst weiß. Es weiß wird beim starten zur Eingabe von Buchstaben. Es auch weiß bleibt nach dem löschen.
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.responsible_menu, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); //TODO: May not be needed?
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextSubmit(String query)
{
mAdapter.updateUIWithFilter(query);
return false;
}
@Override
public boolean onQueryTextChange(String newText)
{
mAdapter.updateUIWithFilter(newText);
return false;
}
});
//Does not work! Still not white.
ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchClose.setColorFilter(Color.argb(255, 255, 255, 255));
searchClose.setAlpha(255);
return true;
}
responsible_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:appcompat="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools">
<item
android:id="@+id/menu_search"
android:title="@string/search"
appcompat:actionViewClass="android.support.v7.widget.SearchView"
appcompat:showAsAction="always"/>
</menu>
- Dies ist hier aufzulösen: stackoverflow.com/questions/31093594/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Lösung gefunden. Jedoch interessiert es bessere.
Heruntergeladen, der "clear-Taste" Bild von https://www.google.com/design/icons/#ic_clear in 24pt weiß und fügte diesen code an das Ende der
onCreateOptionsMenu
ImageView
, könntest du nicht einfach verwendensetColorFilter()
auf, dass, statt mit einem "custom" drawable?searchClose
Objekt zurückgegebennull
in meinem Fall. Ich korrigierte es, indem Sie es auf:((ImageView) searchView.findViewById(searchView.getContext().getResources().getIdentifier("android:id/search_close_btn", null, null))).setImageResource(R.drawable.ic_clear_white_24dp);
.Können Sie auch legen Sie Sie in XML. Ich bin mit dem support library 24.2.1 und eine Aktivität mit einem Thema, dessen Eltern " - Thema.AppCompat.Licht" und ein android.Unterstützung.v7.- widget.SearchView in der ActionBar.
Können Sie eine actionBarWidgetTheme in Ihrer Aktivität Thema wie dieses:
Und dann definieren MyActionBarWidgetTheme und legen Sie die Farben, die Sie wollen, ist es:
android:textColorSecondary gilt für das schließen-Symbol
android:textColorPrimary gilt für den text, den Sie eingeben
colorControlActivated gilt für die cursor -
android:textColorHint gilt für das Hinweis-text
Versuchen Sie dies:
Können Sie Ihre eigenen benutzerdefinierten Symbol an der Stelle von searchview Standard-Symbol "Abbrechen".
Ich habe folgenden code, der funktioniert gut, Hoffe, dass wird für Sie arbeiten.
Dies funktioniert über api level 14.
findViewById
scheint kürzer und sicherer (keine hardcoded string-referense).