আমি আমার অ্যাপ্লিকেশনটির জন্য একটি নাইট থিম যুক্ত করার চেষ্টা করছি এবং আমার নেভিগেশন ড্রয়ারের পাঠ্য এবং আইকনগুলি অন্ধকার পটভূমির সাথে সাদা করে তুলতে কেবল প্রায় তিন ঘন্টা নষ্ট করেছি। এখানে পথ আমি এই কাজ সম্পর্কে যেতে চেষ্টা করছি 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) এ সেট করা থাকলে, নেভিগেশন ড্রয়ারে যা কিছু মেনু আইটেম নির্বাচন করা হয় তা সাদা হয়। তবে, কেবল তখনই ঘটে যখন প্রতিটি আইটেম নির্বাচন করা হয় যা স্পষ্টত অসুবিধাজনক। এখানে আমার ড্রয়ার_ডার্ক.এক্সএমএল:
<?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>
আমি প্রতিটি আইটেমের জন্য স্বচ্ছ পটভূমিতে সাদা আইকন ব্যবহার করছি, তারা নেভিগেশন ড্রয়ারের কালো পটভূমিতে কালো হিসাবে দেখায় as আমি লেখার রঙ পরিবর্তন করার জন্য একটি এক্সএমএল সমাধানের সন্ধান করার চেষ্টা করেছি এবং আমি আমার মাথাটি আঁচড়ানো করছি কারণ কেন জানি এটিকে উপেক্ষা করা হয়নি।
আমি কী অর্জন করতে চাইছে সে সম্পর্কে কেউ কি আমাকে একটি গতিশীল সমাধানের প্রস্তাব দিতে পারেন? সমস্ত সাহায্য প্রশংসা করা হয়, আপনাকে ধন্যবাদ!
সম্পাদনা: আমি তৃতীয় পক্ষের লাইব্রেরিটি ব্যবহার করছি না, এটি সমর্থন লাইব্রেরিতে সরবরাহ করা নেভিগেশনভিউ। এখানে এক্সএমএল লেআউটটি রয়েছে:
<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
এবং তদ্বিপরীত ..