Wie kann ich den Querformatmodus für einige Ansichten in meiner Android-App deaktivieren?
Antworten
Zu viele Anzeigen?Fügen Sie einfach diese Zeile in Ihr Manifest ein:
android:screenOrientation="portrait"
Wie:
<manifest
package="com.example.speedtest"
android:versionCode="1"
android:versionName="1.0" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="ComparisionActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
</application>
</manifest>
Wenn Sie Benutzereinstellungen wünschen, dann würde ich empfehlen setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Sie können die Einstellungen über ein Einstellungsmenü ändern.
Ich benötige dies, weil meine Timer dem entsprechen müssen, was auf dem Bildschirm zu sehen ist, und das Drehen des Bildschirms würde die aktuelle Aktivität zerstören.
Sie können dies für Ihre gesamte Anwendung tun, ohne dass alle Ihre Aktivitäten eine gemeinsame Basisklasse erweitern müssen.
Der Trick besteht darin, zunächst sicherzustellen, dass Sie eine Anwendungsunterklasse in Ihr Projekt aufnehmen. In deren onCreate(), die beim ersten Start Ihrer Anwendung aufgerufen wird, registrieren Sie ein ActivityLifecycleCallbacks-Objekt (API-Ebene 14+), um Benachrichtigungen über Aktivitätslebenszyklusereignisse zu erhalten.
Dies gibt Ihnen die Möglichkeit, Ihren eigenen Code auszuführen, sobald eine Aktivität in Ihrer Anwendung gestartet (oder gestoppt, oder wieder aufgenommen, oder was auch immer) wird. Zu diesem Zeitpunkt können Sie setRequestedOrientation() für die neu erstellte Aktivität aufrufen.
Und vergessen Sie nicht, app:name=".MyApp" in Ihre Manifestdatei aufzunehmen.
class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
// register to be informed of activities starting up
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity,
Bundle savedInstanceState) {
// new activity created; force its orientation to portrait
activity.setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
....
});
}
}