Wie stelle ich es so ein, dass die Anwendung nur im Hochformat ausgeführt wird? Ich möchte, dass der Querformatmodus deaktiviert wird, während die Anwendung ausgeführt wird. Wie mache ich das programmgesteuert?
Sie können android:screenOrientation="portrait"
für jede Aktivität in Ihrer Datei manifest.xml angeben . Sie können diese Option nicht für das application
Tag angeben .
Eine andere Möglichkeit besteht darin, dies programmgesteuert durchzuführen, beispielsweise in einer Activity
Basisklasse:
@Override
public void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Die letzte Option besteht darin, dies mit Listenern für den Aktivitätslebenszyklus zu tun, die erst seit Android 4.0 (API 14+) verfügbar sind. Alles geschieht in einer benutzerdefinierten Application
Klasse:
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleAdapter() {
@Override
public void onActivityCreated(Activity a, Bundle savedInstanceState) {
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
}
ActivityLifecycleAdapter
ist nur eine Hilfsklasse, die Sie erstellen müssen und die eine leere Implementierung von ist ActivityLifecycleCallbacks
(damit Sie nicht jede einzelne Methode dieser Schnittstelle überschreiben müssen, wenn Sie nur eine davon benötigen).
Ja, Sie können dies sowohl programmgesteuert als auch für alle Ihre Aktivitäten tun, indem Sie eine AbstractActivity erstellen, die alle Ihre Aktivitäten erweitert.
Diese abstrakte Aktivität kann auch für ein globales Menü verwendet werden.
quelle
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
dies die bessere Antwort sein sollte, da das Gerät im Standardzustand belassen werden soll, da einige Geräte keine Porträtausrichtung haben. 'Nosensor' funktioniert jedoch NICHT für mich, daher steht die Antwort von @ arcone für mich.Sie können dies für Ihre gesamte Anwendung ohne tun dass alle Ihre Aktivitäten eine gemeinsame Basisklasse erweitern müssen.
Der Trick besteht zunächst darin, sicherzustellen, dass Sie eine
Application
Unterklasse in Ihr Projekt aufnehmen. In seiner FunktiononCreate()
, die beim ersten Start Ihrer App aufgerufen wird, registrieren Sie eineActivityLifecycleCallbacks
Objekt (API-Level 14+), um Benachrichtigungen über Aktivitätslebenszyklusereignisse zu erhalten.Dies gibt Ihnen die Möglichkeit, Ihren eigenen Code auszuführen, wenn eine Aktivität in Ihrer App gestartet (oder gestoppt oder fortgesetzt oder was auch immer) wird. An dieser Stelle können Sie
setRequestedOrientation()
die neu erstellte Aktivität aufrufen .quelle
Sie können dies in Ihrer Manifestdatei festlegen.
und Sie können dasselbe auch erreichen, indem Sie den Code in Ihre Klassendatei schreiben, wie:
quelle
Fügen Sie der Aktivität in der Datei AndroidManifest.xml android: screenOrientation = "Porträt" hinzu. Beispielsweise:
quelle
Verwenden:
Schreiben Sie diese Zeile einfach in die Manifestdatei Ihrer Anwendung in jeder Aktivität, die Sie nur im Hochformat anzeigen möchten.
quelle
Schreiben Sie dies für jede Aktivität in Ihre Manifestdatei:
quelle
Ab Android Entwicklerhandbuch:
In der Datei AndroidManifest.xml können wir also Folgendes einfügen:
quelle
Das Hinzufügen
<preference name="orientation" value="portrait" />
unter<widget>
in meiner config.xml hat bei mir funktioniert.(Die anderen Lösungen funktionierten entweder nicht auf meinem Gerät, wurden beim Erstellen überschrieben oder gaben während des Erstellungsprozesses Verfallsfehler an.)
quelle
In der Manifest-Datei, welche Aktivität Sie in "Porträt" verwenden möchten, müssen Sie diesen Code in das Aktivitäts-Tag schreiben
so was
Wenn Sie jedoch einen Bildschirm im Querformat wünschen, verwenden Sie diesen Code wie folgt
quelle
quelle
Wenn sich jemand gefragt hat, wie Sie dies für Ihre gesamte Anwendung tun können, ohne dass alle Ihre Aktivitäten eine gemeinsame Basisklasse in Kotlin erweitern müssen , sehen Sie sich das folgende Beispiel an:
und dann müssen Sie Ihre gemeinsame Basisklasse in AndroidManifest wie folgt hinzufügen:
quelle
Sie können dies auf zwei Arten tun.
android:screenOrientation="portrait"
Ihrer Manifestdatei die entsprechende Aktivität hinzusetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Ihrer Aktivität die Methode `onCreate () hinzuquelle
Ähnlich wie bei Graham Borland ... aber es scheint, dass Sie keine Anwendungsklasse erstellen müssen, wenn Sie nicht möchten ... erstellen Sie einfach eine Basisaktivität in Ihrem Projekt
Erweitern Sie diese Klasse anstelle von AppCompatActivity, wenn Sie den Potrait-Modus verwenden möchten
quelle
Für Xamarin-Benutzer:
Wenn Sie alle Ihre Aktivitäten auf ein
BaseActivity
einfaches Hinzufügen erweitern:Dadurch wird das Problem behoben. Wenn Sie möchten, dass sich eine bestimmte Aktivität im Querformat befindet, überschreiben Sie diese in
OnActivityCreated
. Wie:quelle
Geben Sie in Ihrem Manifest Folgendes ein:
quelle