मैं अपने ऐप के लिए एक रात का विषय जोड़ने की कोशिश कर रहा हूं और मैंने लगभग तीन घंटे बर्बाद कर दिए हैं और अपने नेविगेशन ड्रॉअर में काले पृष्ठभूमि के साथ पाठ और आइकन बनाने की कोशिश कर रहा हूं। यहाँ जिस तरह से मैं में यह कर के बारे में जाने के लिए कोशिश कर रहा हूँ है onCreate()
में MainActivity.java
:
navigationView = (NavigationView) findViewById(R.id.navigation_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
// This method will trigger onItemClick of navigation menu
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
// Checking if the item is in checked state or not, if not make it in checked state
if (menuItem.isChecked())
menuItem.setChecked(false);
else menuItem.setChecked(true);
if (nightMode == 0) {
SpannableString spanString = new SpannableString(menuItem.getTitle().toString());
spanString.setSpan(new ForegroundColorSpan(Color.WHITE), 0, spanString.length(), 0); // fix the color to white
menuItem.setTitle(spanString);
}
nightMode
क्योंकि यह काम करता है बूलियन अप्रासंगिक है। जब रात मोड को (0) पर सेट किया जाता है, तो नेविगेशन ड्रावर में जो भी मेनू आइटम चुना जाता है वह सफेद हो जाता है। हालांकि, यह केवल तब होता है जब प्रत्येक आइटम का चयन किया जाता है जो स्पष्ट रूप से असुविधाजनक है। यहाँ मेरा drawer_dark.xml है:
<?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/unitone"
android:checked="true"
android:icon="@drawable/one_white"
android:title="Classical Period" />
<item
android:id="@+id/unittwo"
android:checked="false"
android:icon="@drawable/two_white"
android:title="Postclassical Period" />
<item
android:id="@+id/unitthree"
android:checked="false"
android:icon="@drawable/three_white"
android:title="Early Modern Era" />
<item
android:id="@+id/unitfour"
android:checked="false"
android:icon="@drawable/four_white"
android:title="Dawn of Industrial Age" />
<item
android:id="@+id/unitfive"
android:checked="false"
android:icon="@drawable/five_white"
android:title="Modern Era" />
</group>
</menu>
मैं प्रत्येक आइटम के लिए पारदर्शी पृष्ठभूमि पर सफेद आइकन का उपयोग कर रहा हूं, फिर भी वे नेविगेशन ड्रॉअर की काली पृष्ठभूमि पर काले दिखाई देते हैं। मैंने पाठ के रंग को बदलने के लिए एक xml समाधान की तलाश की है और मैं अपना सिर खुजला रहा हूं क्योंकि मुझे नहीं पता कि यह अनदेखी क्यों की गई थी।
क्या कोई मुझे प्राप्त करने में एक गतिशील समाधान प्रदान कर सकता है जिसे मैं प्राप्त करने की कोशिश कर रहा हूं? सभी मदद की सराहना की है, धन्यवाद!
संपादित करें: मैं किसी तीसरे पक्ष के पुस्तकालय का उपयोग नहीं कर रहा हूं, यह सहायता पुस्तकालय में उपलब्ध नेविगेशन व्यू है। यहाँ XML लेआउट है:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="7dp"
tools:context=".MainActivity"
android:fitsSystemWindows="true" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/ColorDark" />
<include layout="@layout/toolbar" />
</FrameLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:background="#000"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/header"
app:menu="@menu/drawer" />
</android.support.v4.widget.DrawerLayout>
Light
करने के लिएDark
और इसके विपरीत ..