2013-01-16 29 views
16

मैंने अपनी खुद की होलो थीम उत्पन्न करने के लिए "Android Action Bar Style Generator" का उपयोग किया है। फिर मैंने एक्शन बार में दो आइकन जोड़े हैं, एक खोज के लिए एक फ़िल्टर और एक फ़ाइल पिकर के लिए, दोनों आइकन सफेद हैं। फ़ाइल पिकर आइकन (दाईं तरफ) अच्छा लग रहा है, लेकिन किसी भी तरह से खोज आइकन गहरा भूरा दिखता है। खोज टेक्स्ट दृश्य पर टाइप करते समय, बंद बटन भी गहरा भूरा दिखता है।SearchView डिफ़ॉल्ट आइकन कैसे बदलें?

मैंने सफलता के बिना एक्शनबार का रंग बदलने और खोज दृश्य से भी कोशिश की है। खोज दृश्य इस रंग को क्यों दिखा रहा है? मैं इसे बदलने में किस तरह सक्षम हूं?

ActionBar with two actions

आपको बहुत बहुत धन्यवाद।

अद्यतन: मैंने सोचा कि मेरा ऐप मेरे आइकन का उपयोग कर रहा था, लेकिन ऐसा नहीं है, यह डिफ़ॉल्ट खोज दृश्य आइकन का उपयोग करता है, इसलिए मेरा प्रश्न वास्तव में है, मैं खोज दृश्य का डिफ़ॉल्ट आइकन कैसे बदलूं? menu.xml फ़ाइल पर यह वाक्य काम नहीं कर रहा:

android:icon="@drawable/selectable_header_search" 

उत्तर

17

दुर्भाग्य से, वहाँ एक कस्टम drawable को SearchView चिह्न बदलने के लिए के बाद से विषय विशेषता searchViewSearchIcon सार्वजनिक नहीं है कोई आसान तरीका है। विवरण के लिए this उत्तर देखें।

हालांकि, मुझे लगता है कि आपकी समस्या गलत विषय से विरासत में होती है। कृपया अपनी थीम के आधार के रूप में android:Theme.Holo.Light.DarkActionBar का उपयोग करें। फिर एक्शन बार पर डिफ़ॉल्ट आइकन में हल्का रंग होना चाहिए।

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 
    ... 
</style> 
-3

मेरे जैसे उन एक तरह से सही मायने में चिह्न बदलने के लिए खोजने के लिए उम्मीद कर रहा है, तो आप ActionBar शर्लक के साथ इस का उपयोग कर सकते के लिए:

 // Getting the 'search_icon' 
     ImageView searchIcon = (ImageView)searchView.findViewById(R.id.abs__search_button); 
     // Setting background of 'search_plate' to earlier defined drawable. 
     searchIcon.setImageResource(R.drawable.search_button_selector); 

आप आम तरीका android:icon के साथ डिफ़ॉल्ट एक को बदल नहीं सकते , क्योंकि इससे संबंधित क्षेत्र निजी पर सेट किया गया था।

+1

यह केवल 5.0 Android 4.1 से मेरे लिए काम करता है अगर आप ActionBarSherlock –

6

कोशिश showAsAction में इस विकल्प को स्थापित करने के लिए: * MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW *

इस विकल्प SearchView एक्शन बटन का आइकन जो आपको सेटअप नहीं लेते हैं बिना

menu.add("Search") 
      .setIcon(
        getResources().getDrawable(
          R.drawable.selectable_header_search)) 
      .setActionView(searchView) 
      .setShowAsAction(
        MenuItem.SHOW_AS_ACTION_ALWAYS 
          | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW 
          | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
+1

उपयोग कर रहे हैं यह इसे हल (कस्टम आइकन काम नहीं कर रहा),। मेनू एक्सएमएल में समतुल्य रूप से: 'ऐप: showAsAction = "हमेशा | collapseActionView" ' – Jonik

0

एक्शन बार में डिफ़ॉल्ट खोज दृश्य आइकन बदलने का सबसे आसान तरीका आपके ऑनपेरऑप्शनमेनू में है। आप एक ही प्रश्न के लिए मेरा उत्तर here देख सकते हैं!

9

के बाद से searchViewSearchIcon विशेषता सार्वजनिक नहीं है, तो आप आइकन निम्नलिखित कोड का उपयोग कर बदल सकते हैं:

<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> 

अब आप की शैली को परिभाषित कर सकते हैं:

int searchIconId = searchView.getContext().getResources().getIdentifier("android:id/search_button",null, null); 
ImageView searchIcon = (ImageView) searchView.findViewById(searchIconId); 
searchIcon.setImageResource(R.drawable........); 
+3

यह एक nullPointerException – desgraci

+0

फेंकता है यह एंड्रॉइड 4.3 पर काम नहीं कर रहा है, 4.4 – SjoerdvGestel

+0

सुपर यह काम कर रहा है – Bahu

0

अपने विषय शैली में इस में शामिल searchViewStyle के साथ सर्च व्यू, और editTextColor खोज बॉक्स में टेक्स्ट का रंग सेट करेगा। android:textColorHint सेट करके आप संकेत का रंग भी सेट करेंगे, उदा। "खोज..."।

<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">@drawable/ic_ab_small_search</item> 
    <item name="defaultQueryHint">@string/toolbar_search_hint</item> 
    <item name="closeIcon">@drawable/ic_ab_small_search_close</item> 
</style> 

यह आपके खोज दृश्य को स्टाइल करेगा जैसा आप पसंद करते हैं, कम या ज्यादा। फ़ील्ड searchIcon एक्शन बार में आइकन है। क्षेत्र searchHintIcon खोज क्षेत्र में संकेत के बाईं ओर स्थित छोटा आइकन है। क्षेत्र closeIcon खोज क्षेत्र के दाईं ओर स्थित नज़दीकी आइकन है।

इस चेक बाहर, अधिक शैली सेटिंग्स के लिए:

$ANDROID_SDK/platforms/android-24/data/res/values/styles_holo.xml 
निश्चित रूप से