webentwicklung-frage-antwort-db.com.de

Geräteorientierung sperren - React Native (Android)

Ich verwende React Native 0.29 und entwickle für Android. Ich versuche die Geräteorientierung zu sperren. Was ich brauche, ist den Bildschirm im Hochformat zu sperren. Ich habe es mit diesem Repository https://github.com/yamill/react-native-orientation ausprobiert - /, aber es unterstützt noch nicht RN 0.29.

Gibt es eine Möglichkeit, die Geräteorientierung zu sperren? Vielleicht ein nativer Android-Hack mit Android-Studio?

12
Provash Shoumma

Fügen Sie der Aktivität in AndroidManifest.xml einfach Android: screenOrientation = "portrait" hinzu.

24
Felipe Martim

Es gibt eine Pull-Anfrage, damit dies ab 0.29.2 und darüber funktionieren kann: https://github.com/yamill/react-native-orientation/pull/85

Wenn Sie seine Version verwenden, sollte sie unter 0.29.2 und höher funktionieren: https://github.com/youennPennarun/react-native-orientation

Schritte:

  1. verknüpfung der vorherigen Installation mit rnpm unlink react-native-orientation aufheben
  2. rm -rf node_modules/react-native-orientation
  3. bearbeiten Sie in der package.json den Eintrag von react-native-orientation wie folgt:

    "react-native-orientation": "youennPennarun/react-native-orientation"

  4. npm install

  5. react-native link react-native-orientation

Danach sollte es funktionieren. Sie können den Fortschritt des PR verfolgen und nach dem Zusammenführen zum Haupt-Repo wechseln.

2
Aakash Sigdel

2017 Update

Derzeit gibt es auch eine andere Möglichkeit, dies für Android und iOS einmal durchzuführen, indem Sie Folgendes hinzufügen:

"orientation": "portrait"

in app.json, wenn Sie Expo verwenden:

{
  "expo": {
    "name": "My app",
    "slug": "my-app",
    "sdkVersion": "21.0.0",
    "privacy": "public",
    "orientation": "portrait"
  }
}

Oder zur Laufzeit:

ScreenOrientation.allow()

Beispiel:

ScreenOrientation.allow(ScreenOrientation.Orientation.PORTRAIT);

Beachten Sie, dass dies nur funktioniert, wenn Sie mit Expo bauen. Da dies jedoch derzeit (ab 2017) in offiziellen Guides auf React Native Blog empfohlen wird werden es wahrscheinlich von vielen Leuten verwendet, so dass es interessant ist Lösung zusätzlich zum Hacken der Android-spezifischen XML-Konfigurationsdateien.

Mehr Info:

Weitere Informationen finden Sie unter: Deaktivieren der Rotation in React Native?

1
rsp

Sie können React-Native-Orientation-Locker verwenden.

Die 'Reaktion-native-Orientierung' wurde verworfen. Mit der Komponente 'Reagieren-Native-Orientierung-Locker' können Sie die aktuelle Orientierung erkennen und sie an Hochformat/Querformat sperren, indem Sie Folgendes verwenden:

Orientation.lockToPortrait();

Orientation.lockToLandscapeLeft();

Sogar die Schlösser lösen mit

Orientation.unlockAllOrientations();
0
Ata Iravani

Schritt 1  

npm install git+https://github.com/yamill/react-native-orientation.git --save

Schritt 2: Reaktiver Link Schritt: 3 Ändern Sie die MainApplication.Java-Datei mit:

import com.github.yamill.orientation.OrientationPackage;// import

@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage(),
new OrientationPackage() //add this
);
}
0
anoopda

reag-native-orientierung - ist nicht mehr kompatibel mit der neuen version (ich habe 0.39.2 versucht). Nach dem Verknüpfen dieses Moduls habe ich den Fehler des Compilers. Wenn ich es verstanden habe, sollten wir jetzt react-native-orientation-listener verwenden.

npm install --save Reaktiver-Orientierungslistener
rnpm link

0