2016-07-29 14 views
4

Ich verwende Suchansicht.Ändern Sie die Farbe von android.support.v7.widget.SearchView

<android.support.v7.widget.SearchView 
      android:id="@+id/searchView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_toLeftOf="@+id/imageViewMenu" 
      > 
    </android.support.v7.widget.SearchView> 

Ist es möglich, Textfarbe und Symbolfarbe zu ändern, um anzuzeigen?

Momentan wird schwarzer Text und Symbol angezeigt. Ich möchte es in weißen Text und weißes Suchsymbol ändern.

Antwort

5

Dies kann arbeiten ..

SearchView searchView = (SearchView) findViewById(R.id.search); 
EditText searchEditText = (EditText)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); 
searchEditText.setTextColor(getResources().getColor(R.color.white)); 
searchEditText.setHintTextColor(getResources().getColor(R.color.white)); 
+1

Dank wird es Textfarbe ändern zu weiß .. Symbol ist immer noch schwarz –

+0

Sie können Symbol Laufzeit ändern oder nach Antwort von Naveen – KrishnaJ

+0

verweisen Sie diese http://stackoverflow.com/questions/10445760/how-to-change-the-default-icon-on-on-the- searchview-zu-verwenden-in-the-action-bar-on – KrishnaJ

1

Ja, können Sie es tun, eine der Möglichkeiten, es zu tun:

public static void customizeSearchView(SearchView searchView) { 

     int searchTextViewId = searchView.getContext().getResources() 
       .getIdentifier("android:id/search_src_text", null, null); 
     AutoCompleteTextView searchTextView 
       = (AutoCompleteTextView) searchView.findViewById(searchTextViewId); 
     searchTextView.setTextSize(14); 
     searchTextView.setTextColor(Color.WHITE); 
} 
1

die Textfarbe zu ändern:

int searchSrcTextId = getResources().getIdentifier("android:id/search_src_text", null, null); 
EditText searchEditText = (EditText) searchView.findViewById(searchSrcTextId); 
searchEditText.setTextColor(Color.WHITE); 
searchEditText.setHintTextColor(Color.LTGRAY); 

Um die Schließen-Schaltfläche zu ändern:

int closeButtonId = getResources().getIdentifier("android:id/search_close_btn", null, null); 
ImageView closeButtonImage = (ImageView) searchView.findViewById(closeButtonId); 
closeButtonImage.setImageResource(R.drawable.ic_action_cancel); 

// Dieser Auszug stammt aus Android-Quellcode (SearchView.java)

mSearchButton = findViewById(R.id.search_button); 
mSearchEditFrame = findViewById(R.id.search_edit_frame); 
mSearchPlate = findViewById(R.id.search_plate); 
mSubmitArea = findViewById(R.id.submit_area); 
mSubmitButton = findViewById(R.id.search_go_btn); 
mCloseButton = (ImageView) findViewById(R.id.search_close_btn); 
mVoiceButton = findViewById(R.id.search_voice_btn); 
mSearchHintIcon = (ImageView) findViewById(R.id.search_mag_icon); 

Referenz: link

+0

versucht .. funktioniert nicht. Für das Änderungssymbol ist es möglich, die Farbe ohne die eingestellte Bildansicht zu ändern. –

3

Für den android.support.v7.widget.SearchView können Sie die Textfarbe, Text ändern Hinweisfarbe und das Symbol mit diesem Code:

2

Wenn es in der Symbolleiste befindet, legen Sie Thema für die Symbolleiste fest. Zum Beispiel macht dies den Text (und Symbol) weiß

android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
3
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" > 
    <item name="colorControlHighlight">@color/LightGray</item> 
    <item name="android:textColorHint">@color/LightGray</item> 
    <item name="android:editTextColor">@color/TransparentGray</item> 
</style> 

anwenden dieses Thema auf Ihren Symbolleiste Hinweis darauf, dass (colorControlHighlight) Farbe Welligkeit effct Ihre Menüpunkte

Verwandte Themen