Antworten:
Legen Sie im Manifest Folgendes für alle Ihre Aktivitäten fest:
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
Lassen Sie mich erklären:
android:configChanges="orientation"
Sie Android mitteilen, dass Sie für die Änderungen der Ausrichtung verantwortlich sind.android:screenOrientation="portrait"
Sie legen den Standardausrichtungsmodus fest.android:screenOrientation="portrait"
PortraitActivity
erstellen und in onCreate call setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
Alle Aktivitäten, die dies erweitern, drehen sich nicht
Activity
eine Aktivität erstreckt, ListActivity
während andere sich einfach von erstrecken Activity
?
In Android Manifest - Datei, setzte Attribut für Ihre <activity>
DASSandroid:screenOrientation="portrait"
Es gibt zwei Möglichkeiten:
android:screenOrientation="portrait"
für jede Aktivität in der Manifestdatei hinzuthis.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
in jeder Java-Datei hinzu.im Manifest:
<activity android:name=".activity.MainActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
oder: in der MainActivity
@SuppressLint("SourceLockedOrientationActivity")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
app/src/main/AndroidManifest.xml; lineNumber: 20; columnNumber: 50; The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not bound.
. Das Hinzufügen xmlns:tools="http://schemas.android.com/tools"
des
Alter Beitrag, den ich kenne. Um Ihre App immer im Hochformat auszuführen, auch wenn die Ausrichtung geändert werden kann oder wird usw. (z. B. auf Tablets), habe ich diese Funktion entwickelt, mit der das Gerät in die richtige Ausrichtung gebracht wird, ohne dass Sie wissen müssen, wie das Hoch- und Querformat ist Funktionen sind auf dem Gerät organisiert.
private void initActivityScreenOrientPortrait()
{
// Avoid screen rotations (use the manifests android:screenOrientation setting)
// Set this to nosensor or potrait
// Set window fullscreen
this.activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
DisplayMetrics metrics = new DisplayMetrics();
this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
// Test if it is VISUAL in portrait mode by simply checking it's size
boolean bIsVisualPortrait = ( metrics.heightPixels >= metrics.widthPixels );
if( !bIsVisualPortrait )
{
// Swap the orientation to match the VISUAL portrait mode
if( this.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT )
{ this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ); }
}
else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); }
}
Klappt wunderbar!
HINWEIS: Ändern Sie this.activity
durch Ihre Aktivität oder fügen Sie es der Hauptaktivität hinzu und entfernen Sie this.activity
;-)
ich benutze
android:screenOrientation="nosensor"
Dies ist hilfreich, wenn Sie den Upside-Down-Portrait-Modus nicht unterstützen möchten.