Ich versuche, eine reaktionsfähige native App zu erstellen, die wie eine vorhandene Web-App aussieht. Ich habe eine feste Fußzeile am unteren Rand des Fensters. Hat jemand eine Idee, wie dies mit React Native erreicht werden kann?
In der vorhandenen App ist es einfach:
.footer {
position: fixed;
bottom: 0;
}
react-native
4ega
quelle
quelle
height
zur Fußzeile hinzugefügt und es sieht gut aus auf 4s und 6Hier ist der eigentliche Code basierend auf Colins Ramsay-Antwort:
quelle
Ich verwende feste Fußzeilen für Schaltflächen in meiner App. Die Art und Weise, wie ich eine feste Fußzeile implementiere, ist wie folgt:
Und wenn die Fußzeile nach oben bewegt werden muss, wenn beispielsweise eine Tastatur angezeigt wird, können Sie Folgendes verwenden:
Verwenden Sie dann {bottom: this.state.btnLocation} in Ihrer festen Fußzeilenklasse. Ich hoffe das hilft!
quelle
import { Keyboard} from 'react-native'; Keyboard.addListener('keyboardWillShow', this.showHandler)
stattdessen.Sie erhalten zuerst die Dimension und können sie dann im Flex-Stil bearbeiten
Beim Rendern
Die andere Methode ist die Verwendung von Flex
quelle
@ Alexander Danke für die Lösung
Unten finden Sie genau den Code, den Sie suchen
Unten ist der Screenshot
quelle
Vielleicht möchten Sie auch einen Blick auf NativeBase ( http://nativebase.io ) werfen . Dies ist eine Bibliothek mit Komponenten für React Native, die eine schöne Layoutstruktur ( http://nativebase.io/docs/v2.0.0/components#anatomy ) enthalten, einschließlich Kopf- und Fußzeilen.
Es ist ein bisschen wie Bootstrap für Mobile.
quelle
Einfaches Zeug hier:
quelle
Unten finden Sie Code zum Festlegen der Fußzeile und der Elemente oben.
quelle
Die Art und Weise, wie ich dies getan habe, war, eine Ansicht (nennen wir es P) mit Flex 1 zu haben, und dann in dieser Ansicht 2 weitere Ansichten (C1 und C2) mit Flex 0,9 bzw. 0,1 (Sie können die Flexhöhen auf die erforderlichen Werte ändern). . Dann haben Sie im C1 eine Bildlaufansicht. Das hat bei mir perfekt funktioniert. Beispiel unten.
quelle
Man könnte etwas Ähnliches erreichen, wenn man mit Native reagiert
position: absolute
Es gibt jedoch einige Dinge zu beachten.
absolute
positioniert das Element relativ zu seinem übergeordneten Element.Eine praktische Stildefinition würde ungefähr so aussehen:
quelle
Ich fand die Verwendung von Flex die einfachste Lösung.
quelle
Wenn Flex eine positive Zahl ist, macht es die Komponente flexibel und wird proportional zu ihrem Flex-Wert dimensioniert. Eine Komponente mit Flex auf 2 nimmt also doppelt so viel Platz ein wie eine Komponente mit Flex auf 1.
quelle
Am besten verwenden Sie die Eigenschaft acceptContent
Wenn Sie mehrere Ansichtselemente auf dem Bildschirm haben, können Sie verwenden
quelle
dann schreibe auf diese Stile
Lief wie am Schnürchen
quelle
Für Android Probleme damit:
Ändern Sie in app / src / AndroidManifest.xml windowSoftInputMode wie folgt.
Ich hatte absolut keine Probleme damit in iOS mit React-Native und KeyboardAwareScroll. Ich wollte gerade eine Menge Code implementieren, um dies herauszufinden, bis mir jemand diese Lösung gab. Hat perfekt funktioniert.
quelle
Wenn Sie nur "React Native" verwenden, können Sie den folgenden Code verwenden
Sie können auch https://docs.nativebase.io/ in Ihrem nativen Reaktionsprojekt verwenden und dann Folgendes tun
React_Native
NativeBase.io
quelle
Setzen Sie android: windowSoftInputMode = "adjustPan" in Ihre Manifestdatei, und es funktioniert wie erwartet.
quelle
Ich denke, das Beste und Einfachste wäre, wie unten, platzieren Sie einfach den Rest Ihrer Ansicht in einem Inhalt und die Fußzeile in einer separaten Ansicht.
oder du kannst die Fußzeile von native-base verwenden
quelle
Vorschlag 1
=> Körper mit fester Fußzeile
Bearbeiten 2
=> Body & Fixed Footer mit Tabs
Anmerkungen
Vorteile
Wir können diese einfache Fußzeile verwenden, ohne auf die untere Navigation zu reagieren
quelle