Ich möchte nur einige Flags setzen, wenn sich meine Ausrichtung im Querformat befindet, damit ich bei der Neuerstellung der Aktivität in onCreate () zwischen dem Laden im Hochformat und dem Querformat wechseln kann. Ich habe bereits eine Layout-Land-XML, die mein Layout verwaltet.
public void onConfigurationChanged(Configuration _newConfig) {
if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
this.loadURLData = false;
}
if (_newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
this.loadURLData = true;
}
super.onConfigurationChanged(_newConfig);
}
Wenn Sie onConfigurationChanged überschreiben, wird verhindert, dass meine Layout-Land-XML im Querformat geladen wird.
Ich möchte nur die aktuelle Ausrichtung meines Geräts in onCreate () abrufen. Wie kann ich das bekommen?
java
android
configuration
orientation
Sheehan Alam
quelle
quelle
Wenn die Oberklasse von
this
istContext
quelle
Bei einigen Geräten
void onConfigurationChanged()
kann es zum Absturz kommen. Der Benutzer verwendet diesen Code, um die aktuelle Bildschirmausrichtung abzurufen.Und verwenden
quelle
Dies gibt alle Orientierung wie normal und umgekehrt
und damit umgehen wie
quelle
final int angle = (rotation == Surface.ROTATION_90) ? 90 : (rotation == Surface.ROTATION_180) ? 180 : (rotation == Surface.ROTATION_270) ? 270 : 0;
Dieser Befehl gibt den int-Wert 1 für Hochformat und 2 für Querformat zurück
quelle
Falls jemand möchte erhalten sinnvolle Orientierungs Beschreibung (so weitergegeben
onConfigurationChanged(..)
mit jenenreverseLandscape
,sensorLandscape
usw.), verwenden Sie einfachgetRequestedOrientation()
quelle
Verwenden Sie in Ihrer Aktivitätsklasse die folgende Methode:
Um zu deklarieren, dass Ihre Aktivität eine Konfigurationsänderung behandelt, bearbeiten Sie das entsprechende Element in Ihrer Manifestdatei, um das
android:configChanges
Attribut mit einem Wert einzuschließen, der die Konfiguration darstellt, die Sie behandeln möchten. Mögliche Werte sind in der Dokumentation für dasandroid:configChanges
Attribut aufgeführt (die am häufigsten verwendeten Werte sind "Ausrichtung", um Neustarts zu verhindern, wenn sich die Bildschirmausrichtung ändert, und "Tastatur ausgeblendet", um Neustarts zu verhindern, wenn sich die Verfügbarkeit der Tastatur ändert). Sie können mehrere Konfigurationswerte im Attribut deklarieren, indem Sie sie durch eine Pipe | trennen Charakter.Das ist alles!!
quelle
Wenn Sie diese onConfigurationChanged-Methode überschreiben möchten und dennoch die grundlegenden Aufgaben ausführen möchten, sollten Sie super.onConfigyrationChanged () als erste Anweisung in der überschriebenen Methode verwenden.
quelle
Ich möchte nur eine andere Alternative vorschlagen, die einige von Ihnen betrifft:
impliziert, dass wir das zu injizierende Layout explizit deklarieren.
Für den Fall, dass wir die automatische Injektion dank der Layout-Land- und Layout-Ordner beibehalten möchten. Alles was Sie tun müssen, ist es zu onCreate hinzuzufügen:
Hier wird die Aktionsleiste je nach Ausrichtung des Telefons angezeigt oder nicht
quelle