Как сделать так, чтобы переключатель в навигационном ящике имел функциональность? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь переключить навигационную панель, которая переключается между нормальной темой и темной темой приложения, но не могу заставить этот переключатель работать.

У меня уже есть рабочий переключатель mainacctivity, но я не могу заставить его работать в навигационном ящике.

Это код для переключения между светлым / темным режимом.

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        if(AppCompatDelegate.getDefaultNightMode()==AppCompatDelegate.MODE_NIGHT_YES) {
            setTheme(R.style.HROTheme);
        }
        else setTheme(R.style.AppTheme);


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        modeswitch=(Switch)findViewById(R.id.switch2);
        if (AppCompatDelegate.getDefaultNightMode()==AppCompatDelegate.MODE_NIGHT_YES) {
            modeswitch.setChecked(true);
        }
        modeswitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
                    recreate();
                }
                else {
                    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
                    recreate();
                }
            }
        });

1 Ответ

0 голосов
/ 28 мая 2019

Вы можете попытаться добавить элемент в значения / атрибуты следующим образом: <attr name="bottomback" format="color" />

Затем определите «нижний край» в стилях для ваших темных и светлых стилей, например:

<item name="bottomback">#000</item>

Это должно отличаться в обоих стилях.теперь вы можете установить backgroundTint ящика следующим образом: android:backgroundTint="?attr/bottomback"

...