2012-12-20 15 views
8

मैं अपने ActionBar के लिए निम्नलिखित मेनू लेआउट है:SearchView ड्रॉएबल धुंधला दिखाई

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.actionbar_default, menu); 

    SearchView searchView=(SearchView) menu.findItem(R.id.itemSearch).getActionView(); 
    int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null); 
    View searchEditText = searchView.findViewById(searchPlateId); 
    ((TextView) searchEditText).setTextColor(Color.WHITE); 
    searchView.setOnCloseListener(new OnCloseListener() {...}); 
    searchView.setOnQueryTextListener(new OnQueryTextListener() {...}); 
} 

सब कुछ ठीक है एक बात को छोड़कर:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:id="@+id/itemSearch" 
     android:icon="@drawable/actionbar_icon_search" 
     android:showAsAction="ifRoom|collapseActionView" 
     android:actionViewClass="android.widget.SearchView" 
     android:title="Search"/> 
</menu> 

और यहाँ सेटअप कोड है मेरी पर Asus गोली (TF-201, एंड्रॉयड 3.2.1) ग्राफिक्स धुंधले होते हैं:

enter image description here

अगर मैं android:actionViewClass="android.widget.SearchView" निकालने के लिए, सब कुछ सामान्य लग रहा है:

enter image description here

यह समस्या 4.1.2 एमुलेटर पर पुनः प्रस्तुत नहीं है। मैंने अपने onCreateOptionsMenu() में केवल मेनू मुद्रास्फीति कोड छोड़ने की कोशिश की लेकिन इससे मदद नहीं मिली।

मैं इसे कैसे ठीक करूं?

+0

आपने इस समस्या को कैसे हल किया? –

+0

@ टोलगे टोकलर नहीं, मैंने नहीं किया। क्या स्वीकृत उत्तर आपके लिए काम नहीं करता है? –

+0

नहीं, ऐसा नहीं हुआ। फिर मैंने एपकोम्बैट वी 7 कक्षा से सर्चव्यू बढ़ाकर इसे हल किया। –

उत्तर

4

इसलिए मैंने समाधान को हराया, हालांकि, यह केवल एपीआई 14 और उससे ऊपर के लिए सही संगतता घोषित करता है, अगर एक्शनबैरशॉक लाइब्रेरी का उपयोग नहीं किया जाता है।


पहले समाधान (एपीआई 14+)

महत्वपूर्ण, थीम्ड प्रसंग आवेदन की से जुड़े होने की है अन्यथा आप SearchView के लिए न्यूनतम संभव डिजाइन (अस्पष्ट प्रतीक)

SearchView बनाना मिल प्रोग्रामेटिक

फ़्रेगमेंट

SearchView searchView = 
       new SearchView(getActivity().getActionBar().getThemedContext()); 

गतिविधि

SearchView searchView = new SearchView(getActionBar().getThemedContext()); 

दूसरा समाधान (एबीएस संगतता, एपीआई 8+)

कार्रवाई बार शर्लक FRAGMENT

SearchView searchView = 
    new SearchView(getSherlockActivity().getSupportActionBar().getThemedContext()); 

कार्रवाई बार शर्लक गतिविधि

SearchView searchView = new SearchView(getSupportActionBar().getThemedContext()); 

तीसरा समाधान (एपीआई 11+)

कुछ मामलों में, SearchView.setBackgroundColor(int color) की स्थापना आइकन कम धुँधली दिखाई देता है, कोशिश Color.WHITE या Color.BLACK

नोट कि यह मेनूइटम के लिए पृष्ठभूमि रंग बदलता है चाहे वह ध्वस्त हो या नहीं, उदाहरण के लिए। थीम Holo.Light का उपयोग करके।आपके एक्शनबार शैली के अनुसार, DarkActionBar आपको सही रंग का उपयोग करने की आवश्यकता है।

2

मुझे एक ही समस्या का सामना करना पड़ा लेकिन अन्य उत्तर ने मेरी समस्या का समाधान नहीं किया। मैं अपनी गतिविधि कक्षा AppCompatActivity से बढ़ा रहा हूं। मेरा सर्चव्यू आइकन एंड्रॉइड 4 पर धुंधला दिख रहा था। * और यह एंड्रॉइड 5 पर अच्छा लग रहा था। * बिना किसी समस्या के।

मैं इस के लिए मेरे एक्सएमएल बदल दिया है:

<item android:id="@+id/action_search" 
     android:icon="@drawable/ic_search_white_24dp" 
     app:showAsAction="always" 
     app:actionViewClass="android.support.v7.widget.SearchView" 
     android:iconifiedByDefault="true" /> 

और

import android.support.v7.widget.SearchView; 

के बजाय import android.widget.SearchView;

और समस्या तय आयात किया।

संबंधित मुद्दे