versuchen Sie dies stackoverflow.com/questions/31934503/…
– Munir
26. November 2017 um 11:34 Uhr
Ich möchte den Nachtmodus überall ändern, nicht in meiner App. Ich muss einige Themen nicht wechseln.
– Ilan
26. November 2017 um 11:44 Uhr
Haben Sie diesen Hinweis überprüft? „Hinweis: Bei API 22 und darunter sind Änderungen am Nachtmodus nur wirksam, wenn der Auto- oder Schreibtischmodus auf einem Gerät aktiviert ist. Ab API 23 sind Änderungen am Nachtmodus immer wirksam.“
– Google
29. März 2018 um 6:00 Uhr
Konntest du dieses Problem lösen? Ich habe Probleme mit setNightMode und kann es nicht auf Android 10 oder 11 bekommen
– Tonne
19. November 2020 um 8:28 Uhr
Kischan Solanki
EINFACHSTE LÖSUNG
Sie können das dunkle Thema der Anwendung einfach aktivieren / deaktivieren, indem Sie:
Legen Sie das App-Design basierend auf den mobilen Einstellungen des Dunkelmodus fest, dh wenn der Dunkelmodus aktiviert ist, wird das Design auf ein dunkles Design eingestellt, wenn nicht, dann auf das Standarddesign, aber dies funktioniert nur in Version >= Android-Version Q (10)
Die Namen Ihres Res-Ordners enden mit -night, sodass Sie verschiedene Farben und Bilder für Tag- und Nachtthemen festlegen können
ziehbar & ziehbar-Nacht,
Werte & Werte-Nacht
Wenn ich mich nicht irre, glaube ich, dass OP nach einer Möglichkeit gesucht hat, den Nachtmodus geräteweise zu ändern. Ihr Code funktioniert in Bezug auf die App einwandfrei. Da ich nach einer Möglichkeit suchte, das gesamte Gerät zu ändern, UiManager scheint die richtige Klasse dafür zu sein.
– Mackovich
24. August 2020 um 15:49 Uhr
Funktioniert perfekt für mich!
– Markus Delphi
11. November 2020 um 8:25 Uhr
Funktioniert bei mir auch einwandfrei!
– Yoonhok
15. Dezember 2020 um 23:20 Uhr
Stellen Sie sicher, dass Sie das Standarddesign von ändern Theme.AppCompat.Light.DarkActionBar Zu Theme.AppCompat.DayNight.DarkActionBar im styles.xml Datei und dann tun AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) um in den Nachtmodus zu wechseln. Ich habe es in APIv23 (Android 6.0) und höher getestet und es funktioniert gut. Zur besseren Erklärung siehe dieses Codelab von Android
Hallo Neeraj Sewani. Ich versuche, eine App einzustellen, die einfach den Wert des Nachtmodus im gesamten Gerät umschaltet. Ich verwende uiManager.setNightMode(UiModeManager.MODE_NIGHT_YES) oder MODE_NIGHT_NO. Aber ich bin nicht in der Lage, es zu bekommen. Muss ich auch das „Default-Theme“ in meiner App ändern? Es ist mir egal, wie meine App angezeigt wird. Ich möchte nur den Nachtmodus des Geräts ändern. Danke.
– Tonne
19. November 2020 um 8:32 Uhr
DiLDoST
Dieser Code funktioniert perfekt für mich, obwohl Sie möglicherweise nur Ihre App neu starten müssen. Aber denken Sie daran, dass dieser Code aktiviert den Dark Mode systemweitnicht nur in der App:
public static void setNightMode(Context target , boolean state){
UiModeManager uiManager = (UiModeManager) target.getSystemService(Context.UI_MODE_SERVICE);
if (VERSION.SDK_INT <= 22) {
uiManager.enableCarMode(0);
}
if (state) {
uiManager.setNightMode(UiModeManager.MODE_NIGHT_YES);
} else {
uiManager.setNightMode(UiModeManager.MODE_NIGHT_NO);
}
}
Das hat bei mir in Kitkat funktioniert.
Bitweise DEVS
Erinnere dich daran Dark Mode ist nicht Night Mode. Sie sind völlig unterschiedlich. DM wurde in Android 10 eingeführt, das die integrierte Schwarz-Weiß-Farbe erzwingt, während NM in einer früheren Version veröffentlicht wurde, die entweder den standardmäßigen oder benutzerdefinierten Stil verwendet, der allgemein als bezeichnet wird Ressourcenqualifizierer. Wenn Sie Ihren eigenen benutzerdefinierten Licht-/Nachtstil verwenden möchten und sich nicht auf den integrierten dunklen Stil von Android verlassen möchten, sollten Sie dies festlegen forceDarkAllowed Zu false in themes.xml oder style.xml, um Konflikte zu vermeiden.
Um Ihren App-Modus auf Nacht zu ändern, verwenden Sie AppCompatDelegate.
// This will be the top level handling of theme
AppCompatDelegate.setDefaultNightMode(
if (userPrefModeIsNight)
AppCompatDelegate.MODE_NIGHT_YES
else
AppCompatDelegate.MODE_NIGHT_NO)
Eine weitere Sache: Ihre Aktivität muss von AppCompatActivity erweitert werden.
Wenn es die einfache Aktivität erweitert, funktioniert das Aufrufen von AppCompatDelegate.setDefaultNightMode nicht.
Himanshu Yadav Anshu
int nightModeFlags =
getContext().getResources().getConfiguration().uiMode &
Configuration.UI_MODE_NIGHT_MASK;
switch (nightModeFlags) {
case Configuration.UI_MODE_NIGHT_YES:
doStuff();
break;
case Configuration.UI_MODE_NIGHT_NO:
doStuff();
break;
case Configuration.UI_MODE_NIGHT_UNDEFINED:
doStuff();
break;
}
Prokash Sarkar
Nachteule hat eine eigene Implementierung zum Umschalten des Tag-/Nachtmodus auf Android. Der Einstieg in NightOwl ist super einfach. Hier ist ein Code-Snippet:
Init der Nachteule in der Anwendungsklasse,
NightOwl.builder().defaultMode(0).create();
Rufen Sie drei Methoden in Ihrer Activity-Klasse auf,
public class DemoActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// step1 before super.onCreate
NightOwl.owlBeforeCreate(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
// step2 after setContentView
NightOwl.owlAfterCreate(this);
// write your code
}
@Override
protected void onResume() {
super.onResume();
// step3 onResume
NightOwl.owlResume(this);
}
}
Wechseln Sie die Haut überall, wie Sie möchten,
View v = findViewById(R.id.button);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
NightOwl.owlNewDress(SettingActivity.this);
}
});
Google-Bibliotheken sind die beste Wahl
– Vlad
28. Juli 2020 um 8:55 Uhr
14487300cookie-checkWie aktiviere ich den Nachtmodus programmgesteuert?yes
versuchen Sie dies stackoverflow.com/questions/31934503/…
– Munir
26. November 2017 um 11:34 Uhr
Ich möchte den Nachtmodus überall ändern, nicht in meiner App. Ich muss einige Themen nicht wechseln.
– Ilan
26. November 2017 um 11:44 Uhr
Haben Sie diesen Hinweis überprüft? „Hinweis: Bei API 22 und darunter sind Änderungen am Nachtmodus nur wirksam, wenn der Auto- oder Schreibtischmodus auf einem Gerät aktiviert ist. Ab API 23 sind Änderungen am Nachtmodus immer wirksam.“
– Google
29. März 2018 um 6:00 Uhr
Konntest du dieses Problem lösen? Ich habe Probleme mit setNightMode und kann es nicht auf Android 10 oder 11 bekommen
– Tonne
19. November 2020 um 8:28 Uhr