2015-11-27 14 views
9

नेविगेशन ड्रॉवर में चयनित आइटम
के आइटम रंग को प्रोग्रामेटिक रूप से बदलने का कोई तरीका है?
मैं ऐप का उपयोग करने में सक्षम हूं: itemTextColor, लेकिन समस्या यह है कि अगर मैंने इसका उपयोग किया, तो
मेनू आइटम में चेक-इन नहीं किया जाएगा।नेविगेशन व्यू (चयनित आइटम का रंग बदलें)

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_home" 
      android:icon="@drawable/ic_home_black_24dp" 
      android:title="Home" /> 
     <item 
      android:id="@+id/nav_search" 
      android:icon="@drawable/ic_search_black" 
      android:title="Search Location" /> 
     <item 
      android:id="@+id/nav_fav" 
      android:icon="@drawable/ic_favorite" 
      android:title="Favorites" /> 
     <item 
      android:id="@+id/nav_route" 
      android:icon="@drawable/ic_place" 
      android:title="Route" /> 

     <item 
      android:id="@+id/nav_recent" 
      android:icon="@drawable/ic_nav_route" 
      android:title="Recent Location" /> 
    </group> 

    <item android:title="Others"> 
     <menu> 
      <item 
       android:id="@+id/nav_settings" 
       android:checked="true" 
       android:checkable="true" 
       android:icon="@drawable/ic_settings" 
       android:title="Settings" /> 
      <item 
       android:id="@+id/nav_about" 
       android:icon="@android:drawable/ic_menu_send" 
       android:title="About" /> 
     </menu> 
    </item> 
</menu> 
+0

आप नेविगेशन ड्रॉवर के अंदर टेक्स्टव्यू या लिस्ट व्यू के साथ रैखिक लेआउट का उपयोग क्यों नहीं करते हैं, जो भी आप चाहते हैं, – Tony

+0

ठीक है। जो मेरे प्रश्न का उत्तर नहीं देता है। क्षमा करें, लेकिन मैं नेविगेशन व्यू –

+1

के साथ रहना चाहता हूं शायद यह उत्तर आपके लिए उपयोगी है http://stackoverflow.com/questions/30886453/change-the-color-of-a-checked-menu-item-in-a-navigation -ड्रावर – Tony

उत्तर

23

एक चयनकर्ता

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:drawable="@color/primary" android:state_checked="true" /> 
     <item android:drawable="@android:color/transparent" /> 
</selector> 

बना सकते हैं और सेट

app:itemBackground="@drawable/nav_view_item_background" 

तो चयनित आइटम हाइलाइट किया जाएगा।

आप बदलना पाठ का रंग तो

app:itemTextColor="@drawable/nav_view_item_textcolor" 

सेट और की तरह इसके लिए एक चयनकर्ता बनाना चाहते हैं

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:color="@android:color/white" android:state_checked="true" /> 
    <item android:color="@color/primary" /> 
</selector> 
+4

यह मेरे लिए भी काम करता है, यह ध्यान देने योग्य है कि 'app: itemTextColor' को' VSG24

0

नोट: यशोदा का जवाब मेरे लिए काम नहीं किया है, जिसमें सच है ज्यादातर मामलों में।

हालांकि मैं state_checked सेट करता हूं सच और इसे एक खींचने योग्य रंग दें, ऐसा लगता है कि आइटम कभी चेक नहीं किया गया है।

अधिक खोज के लिए, मुझे पता चला कि मेनू आइटम के साथ समस्या हुई थी। मैंने मेनू फ़ाइल में मेन्यू आइटम में सही आइटम को सही नहीं दिया था।

फिर मुझे इसमें android:checkable=true टैग जोड़ना होगा।

और यह आकर्षण की तरह काम करता है।

+0

नहीं, यह आइटम पर क्लिक करने के बाद, यह कभी भी मूल रंग में वापस नहीं बदला जाता है। – iBEK

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