Ich möchte das Mag-Symbol deaktivieren, das in der Suchansicht angezeigt wird. Irgendeine Idee, wie man es referenziert und es entfernt oder es durch ein anderes ziehbares ersetzt?Android SearchView Icon
Antwort
In Ihrem Thema:
<style name="Theme" parent="Your parent theme">
<item name="android:searchViewSearchIcon">@android:drawable/ic_search</item>
</style>
Edit:
searchViewSearchIcon
ist ein privates Attribut. Diese Antwort funktioniert daher nicht (auf der nativen ActionBar).
Setzen Sie es auf '@android: Farbe/transparent', um es zu entfernen, oder ändern Sie es, was Sie möchten. –
@Mattias vielen Dank: D –
gibt es eine Liste von dem, was Sie wo ändern können? –
Da der Wortlaut der Frage keine Erwähnung von ActionBarSherlock
enthält (mit Ausnahme des Tags) und Kommentare hinzugefügt wurden, dass die akzeptierte Antwort nicht für die Standard- und/oder Unterstützungsbibliotheks-Aktionsleiste funktioniert, schreibe ich eine andere Antworten. Hier ist die Java-Code für onCreate
:
// obtain action bar
ActionBar actionBar = getSupportActionBar();
// find SearchView (im my case it's in a custom layout because of left alignment)
View v = actionBar.getCustomView();
SearchView searchView = (SearchView)v.findViewById(R.id.search_view);
ImageView icon = (ImageView)searchView.findViewById(android.support.v7.appcompat.R.id.search_mag_icon);
// method 1: does not work persistently, because the next line
// should be probably called after every manipulation with SearchView
// icon.setVisibility(View.GONE);
// method 2: working code
icon.setAdjustViewBounds(true);
icon.setMaxWidth(0);
icon.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
icon.setImageDrawable(null);
Nach dieser post, während eine SearchView
von der Support-Bibliothek (android-support-v7-appcompat
in meinem Fall) mit setIconifiedByDefault(false)
das Symbol außerhalb bearbeiten Textbox angezeigt (SearchAutoComplete
). Ansonsten (setIconifiedByDefault(true)
) wird es in der Box angezeigt. Der vorgestellte Code wird standardmäßig für deaktivierte "Iconification" verwendet und erfordert möglicherweise einige Änderungen, um mit der "iconified" -Suchansicht zu arbeiten. Ich weiß nicht, ob das gleiche für ActionBarSherlock
gilt.
Hoffe das hilft.
i AppCompat Suche bin mit, und ich habe das Symbol innerhalb Textbox bearbeiten und i kann es nicht wegbringen. Hast du noch andere Ideen? – AndrewS
Sie sollten wahrscheinlich überprüfen, welche Version Ihre Bibliothek ist und schauen Sie sich deren Quellen an, speziell in der Layoutdatei. Wenn Sie sich beispielsweise [diese Android-Quellen] ansehen (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/frameworks/base/core /res/res/layout/search_view.xml) Sie werden feststellen, dass 'search_mag_icon' außerhalb von' search_plate' liegt. Mit der Quelle können Sie ableiten, welche Elemente in Ihrem Layout zu "finden" sind. – Stan
Ich habe die letzte Version von SupportLibrary und in den Ressourcen search_mag_icon ist überall draußen. Vielleicht ist dieses Symbol nicht search_mag_icon, aber einige Symbole in SearchAutoComplete? Wie kann ich Ressourcen dafür finden? – AndrewS
Wenn Sie die Compatibilitätsbibliothek der App v7 verwenden, können Sie dies einfach im Design ändern. In Ihrem Thema, das von einem AppCompat Thema erstreckt sich nur eine Zeile hinzufügen:
<item name="searchViewSearchIcon">@drawable/ic_search</item>
Dieses Symbol ist Hinweis. Sie können also einfach einen neuen Hinweistext setzen.
int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
EditText searchPlate = (EditText) searchView.findViewById(searchPlateId);
searchPlate.setHint("Search");
Wenn Sie Symbol als Hinweistext spanable String mit ImageSpan verwenden
int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
EditText searchPlate = (EditText) searchView.findViewById(searchPlateId);
searchPlate.setTextColor(getResources().getColor(R.color.search_text_color));
SpannableString string = new SpannableString(" ");
Drawable d = getResources().getDrawable(R.drawable.ic_search);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM);
string.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
searchPlate.setHint(string);
den Hinweis Suchtaste zu entfernen:
mNearMeSearchBar = (SearchView) mView.findViewById(R.id.nearme_search_component_nearme_edittext);
mNearMeSearchBar.setIconifiedByDefault(false); //Removes Search Hint Icon
Um die Suchtaste ziehbar zu ändern:
int searchImgId = getResources().getIdentifier("android:id/search_mag_icon", null, null);
ImageView v = (ImageView) mNearMeSearchBar.findViewById(searchImgId);
v.setImageResource(R.drawable.ic_compass);
Diese Linien remo ved die Lupe:
//remove search icon
mSearchView.setIconifiedByDefault(false);
ImageView icon = (ImageView) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_mag_icon);
icon.setVisibility(View.GONE);
Sie haben diese Zeile in Ihrer MenuItem hinzufügen android:iconifiedByDefault="@android:color/transparent"
<item
android:id="@+id/activity_home_action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/activity_home_search_title"
android:iconifiedByDefault="@android:color/transparent"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always|collapseActionView" />
Oder Sie können programmatisch searchView.setIconifiedByDefault(true);
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
getMenuInflater().inflate(R.menu.home, menu);
MenuItem searchMenuItem = menu.findItem(R.id.activity_home_action_search);
SearchView searchView = (SearchView) searchMenuItem.getActionView();
searchView.setIconifiedByDefault(true);
}
Sie die SearchView
Stil anpassen müssen machen wie dies:
<style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView">
<!-- Search button icon -->
<item name="searchIcon">@drawable/ic_arrow_back</item>
</style>
Und dann fügen Sie es in Ihrem AppTheme
.
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- your other colors and styles -->
<item name="searchViewStyle">@style/MySearchViewStyle</item>
</style>
und wenden sie den Tag zu Ihrem Suchansicht mit style
:
<android.support.v7.widget.SearchView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/searchView"
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:queryHint="@string/search_hint"
android:focusable="true"
android:focusableInTouchMode="true"
style="@style/MySearchViewStyle"
app:iconifiedByDefault="false" />
Hoffe, es hilft!
In Ihrem Thema Stil sind dies:
<style name="YourTheme.Toolbar">
<item name="searchViewStyle">@style/YourActionBarSearch</item>
<item name="editTextColor">@color/your_ab_text_color</item>
<item name="android:textColorHint">@color/your_ab_hint_color</item>
</style>
Sie jetzt den Stil der Suche mit searchViewStyle
definieren können, und editTextColor
die Farbe des Textes in das Suchfeld ein. Mit der Einstellung android:textColorHint
legen Sie auch die Farbe des Hinweises fest, z. "Suche...".
<style name="YourActionBarSearch" parent="@style/Widget.Holo.SearchView">
<item name="searchIcon">@drawable/ic_ab_search</item>
<item name="queryBackground">@null</item>
<item name="submitBackground">@null</item>
<item name="searchHintIcon">@null</item>
<item name="defaultQueryHint">@null</item>
<item name="closeIcon">@drawable/ic_ab_small_search_close</item>
</style>
Dadurch wird Ihre Suchansicht mehr oder weniger wie gewünscht gestaltet. Das Feld searchIcon
ist das Symbol in der Aktionsleiste. Das Feld searchHintIcon
ist das kleine Symbol links neben dem Hinweis im Suchfeld, nach dem Sie in Ihrer Frage fragen; Setzen Sie es auf @null
, um das Symbol zu entfernen. Das Feld closeIcon
ist das Schließen-Symbol auf der rechten Seite des Suchfelds.
In xml in Suche Komponente hinzufügen nächste:
app:searchHintIcon="@null"
- 1. Android Actionbar SearchView
- 2. SearchView Android wurde Suchanwendung?
- 3. Android SearchView leere Zeichenfolge
- 4. SearchView ist null android
- 5. Benutzerdefinierte Suche searchView android
- 6. Android SearchView OnClickListener
- 7. Android SearchView Filter ListView
- 8. Android SearchView AutocompleteTextView showdropdown BadTokenException
- 9. Android SearchView in der Toolbar
- 10. Android Icon Fehler
- 11. Android Statusleiste Icon Design
- 12. Icon zeigt Android nicht
- 13. Android Benachrichtigung Dynamische Icon
- 14. Android actionbar icon
- 15. Getting eine SearchView mit MenuItemCompat (Android)
- 16. Stil Android SearchView Drop-down-Popup
- 17. Android ActionBar: reduzierbare SearchView mit Aktionstaste
- 18. Android wie zu konzentrieren ActionBar searchView
- 19. Android SearchView Cursorposition nach Hinweispfeil ändern
- 20. Custom SearchView ganz anklickbar in Android
- 21. Wie man Searchview im Layout in Android
- 22. Android - Kollaps Searchview nach dem Senden
- 23. Wie wird SearchView immer in Android erweitert?
- 24. Android Searchview Vorschlag aus dem Netzwerk
- 25. Android - Verhindern von Textverkürzung in SearchView-Vorschlägen?
- 26. Android - SearchView in der Symbolleiste nicht erweitert
- 27. Android Toolbar SearchView öffnet automatisch Tastatur
- 28. Android: Kann nicht zum Thema SearchView
- 29. Android SearchView erhalten ImeOptionClick oder submitButton klicken
- 30. Android Benutzerdefinierte EditText mit Icon
Wonders warum sollte jemand nach unten auf die Frage abstimmen? –
Was ist mit der weißen Linie unter dem SearchView-Symbol - wie wird es angepasst? – AndrewS
Haben Sie das jemals herausgefunden? – theblang