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?
Fügen Sie der Aktivität in AndroidManifest.xml einfach Android: screenOrientation = "portrait" hinzu.
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:
rnpm unlink react-native-orientation
aufhebenrm -rf node_modules/react-native-orientation
bearbeiten Sie in der package.json den Eintrag von react-native-orientation
wie folgt:
"react-native-orientation": "youennPennarun/react-native-orientation"
npm install
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.
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.
Weitere Informationen finden Sie unter: Deaktivieren der Rotation in React Native?
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();
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
);
}
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