Intereting Posts
कॉर्डोबा – इनलाइन ईवेंट हैंडलर निष्पादित करने से इनकार करते हैं क्योंकि यह निम्न सामग्री का उल्लंघन करती है सुरक्षा नीति javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: प्रमाणन पथ के लिए ट्रस्ट एंकर नहीं मिला वरीयताओं से आशय को अतिरिक्त डाल करने का कोई तरीका है? क्षैतिज ScrollView ListView के साथ – प्रलेखन बग? क्या लॉक पैटर्न स्क्रीन को ओवरराइड करने का एक तरीका है? एंड्रॉइड: बच्चे के टुकड़े से मूल टुकड़े तक डेटा पास करना संपर्क परिवर्तन सुनने के लिए सामग्रीऑब्सर्वर कई टुकड़ों के साथ एक्शनबार टैब एंड्रॉइड में सर्वर को एक्सएमएल डाटा कैसे पोस्ट करना है एंड्रॉइड हैंडलर लूप सैमसंग गैलेक्सी नोट पर getExternalStoragePublicDirectory का पथ अवरोधन विधि कॉल यह कैसे काम करता है – requestLocationUpdates () + LocationRequest / Listener एक दृश्य को आकर्षित करना और उसके सभी बच्चे हैं एंड्रॉइड या जावा में एचटीएमएल कोड प्रस्तुत करते हुए फ़ॉन्ट आकार कैसे लागू करें

एंड्रॉइड एक्शनबार खोज दृश्य को कस्टमाइज़ करें

— समस्याओं को सुलझाने – संपादित पाठ में उत्तर जोड़ा —

मैं अपने एंड्रॉइड ऐप में ActionBar शेरलॉक का उपयोग कर रहा हूं वहां मैं एक SearchView दिखाना चाहता हूं यह अभी तक ठीक काम करता है, लेकिन मुझे पता है कि इसे अनुकूलित करने की कोशिश करते समय मैं कुछ गलत कर रहा हूं।

मैं इसे इस तरह बना देता हूं:

 searchView.setQueryHint("Search: "); searchView.setOnQueryTextListener(this); searchView.setOnCloseListener(...); searchMenuItem = menu.add("Search place"); searchMenuItem.setIcon(R.drawable.ic_action_search) .setActionView(searchView) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); 

मैं दो चीजों को करना चाहता हूं:

  1. टेक्स्ट "खोज" का रंग बदलें जो कि प्रदर्शित टेक्स्ट फ़ील्ड में दिखाया गया है। ऐसा लगता है कि मैंने इसे अपने विषय में समग्र पाठ शैली के साथ बदल दिया है लेकिन मुझे आशा है कि मैं किसी तरह एक अलग रंग सेट कर सकता हूं।

  2. जब यह खोज खोलते हैं, तो यह एक्शन बार के बाईं तरफ दिखाई देता है। लेकिन मुझे इसकी दाईं ओर की आवश्यकता है आइकन (मैग्निफायर) वास्तव में बार के दायीं तरफ है, लेकिन दबाने पर इसे बाईं ओर स्थित EditTextfield खोलता है मैंने लेआउट पैराम्स का उपयोग करने की कोशिश की लेकिन लेआउट पर्म्स का उपयोग करके एक्शन बार में इसे जोड़ने का प्रयास करते समय मुझे कुछ आवश्यक याद आ रही है I

यहां छवि विवरण दर्ज करें

तो उम्मीद है कि किसी ने मुझे उस के साथ मदद कर सकता है

बहुत बहुत धन्यवाद, टोबीस

—- संपादित करें —-

ठीक है, इसलिए एक बात का हल पहले से ही है। XML द्वारा एक्शनबार को जोड़ना TextEdit को सही बनाता है

 getSupportMenuInflater().inflate(R.menu.activity_main, menu); MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) searchItem.getActionView(); Log.e(TAG, "searchView: " + searchView); 

और मेरे मेनू में। Xml

 <item android:id="@+id/action_search" android:title="Search" android:icon="@drawable/ic_action_search" android:showAsAction="always" android:actionViewClass="com.actionbarsherlock.widget.SearchView" /> 

इसलिए कम से कम एक रहस्य हल (क्यों यह एक अंतर बना दिया) लेकिन नव निर्मित एक्सएमएल फोन करने पर अब और बंद नहीं होता है

 searchMenuItem.collapseActionView(); 

तो फिर भी इसके साथ कुछ गड़बड़ है

— संपादित करें 2 —

बस आपको यह बताने के लिए। मुझे टेक्स्ट रंग का समाधान मिला यह SearchView के AutoCompleteTextView का उपयोग करके प्राप्त किया जा सकता है:

 AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text); searchText.setHintTextColor(getResources().getColor(R.color.white)); searchText.setTextColor(getResources().getColor(R.color.white)); 

तो मेरे पास अंतिम समस्या यह है कि पाठ सबमिट करते समय SearchView अब कोई बंद नहीं कर रहा है तो collapseActionView () आदि काम नहीं करता है। कोई विचार?

— संपादित करें 3 —

ठीक है, मुझे एक समाधान मिला मुझे नहीं पता कि यह ऐसा करने का सही तरीका है, लेकिन जब इस्तेमाल करना है

 ((SearchView) searchMenuItem.getActionView()).setIconified(true); 

यह EditText बंद करता है

मुझे इसे दो बार करना पड़ता है क्योंकि पहली बार केवल मेरे इनपुट पाठ को "हटाने" और "संकेत" दिखाता है, जबकि दूसरा प्रयोग संकेत संपादन टेक्स्ट को बंद कर रहा है और खोजदृश्य को विज़ुअलाइज़र को ढह देता है। अनाड़ी शैली लेकिन यह काम करता है। 🙂

Solutions Collecting From Web of "एंड्रॉइड एक्शनबार खोज दृश्य को कस्टमाइज़ करें"

मैंने मूल खोजविवे एंड्रॉइड विजेट को आसानी से प्रारूपित करने के लिए एक कक्षा SearchViewFormatter किया था। एक उदाहरण:

 new SearchViewFormatter() .setSearchBackGroundResource(R.drawable.my_bg) .setSearchIconResource(R.drawable.my_ic, true, false) //true to icon inside edittext, false to outside .setSearchVoiceIconResource(R.drawable.my_ic) .setSearchTextColorResource(R.color.my_color) .setSearchHintColorResource(R.color.my_color) .setSearchCloseIconResource(R.drawable.my_ic) .setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) .format(mSearchView); 

एफवाईआई अब एक्शनबार समर्थन v7 ऐप के साथ बदलते संकेत संकेत रंग, पाठ रंग, पाठ का आकार:

 import android.support.v4.view.MenuItemCompat; import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView.SearchAutoComplete; ... @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_home, menu); MenuItem searchItem = menu.findItem(R.id.item_search); mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem); mSearchView.setOnQueryTextListener(this); mSearchView.setQueryHint(getString(R.string.text)); SearchAutoComplete searchAutoComplete = (SearchAutoComplete) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); searchAutoComplete.setHintTextColor(mRes.getColor(android.R.color.white)); searchAutoComplete.setTextSize(14); return super.onCreateOptionsMenu(menu); } 

मैंने इस तरह से पाठ संपादित करने के लिए गोल कोने किया था

 int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_plate", null, null); View searchPlate = findViewById(searchPlateId); searchPlate.setBackgroundResource(R.drawable.bg_white_rounded); int searchSrcTextId = getResources().getIdentifier("android:id/search_src_text", null, null); EditText searchEditText = (EditText) searchView.findViewById(searchSrcTextId); searchEditText.setTextColor(Color.BLACK); searchEditText.setHintTextColor(Color.LTGRAY); int closeButtonId = searchView.getContext().getResources().getIdentifier("android:id/search_close_btn", null, null); ImageView closeButtonImage = (ImageView) searchView.findViewById(closeButtonId); closeButtonImage.setColorFilter(ContextCompat.getColor(MainActivity.this, R.color.colorPrimary), PorterDuff.Mode.SRC_IN); 

bg_white_background.xml:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffff"/> <corners android:radius="8dp"/> </shape> 

खोज बटन पर क्लिक करने से पहले

खोज बटन पर क्लिक करने के बाद

 <SearchView android:id="@+id/searchView" android:layout_width="match_parent" android:queryHint="Serach" android:layout_height="match_parent"></SearchView> 

अपना नंबर 2 प्रश्न हल करने के लिए

इस लाइन को बदलें:

 .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); 

सेवा मेरे:

 .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 

setShowAsAction() विधि पर केवल SHOW_AS_ACTION_IF_ROOM पैरामीटर का उपयोग करें