Ich habe einige Elemente in einer RelativeView mit dem Attribut "Unten ausrichten" festgelegt. Wenn die Softtastatur angezeigt wird, werden die Elemente von der Softtastatur ausgeblendet.
Ich möchte, dass sie nach oben verschoben werden, damit sie über der Tastatur angezeigt werden, wenn genügend Platz auf dem Bildschirm vorhanden ist, oder dass der Abschnitt über der Tastatur scrollbar ist, damit der Benutzer die Elemente weiterhin sehen kann.
Irgendwelche Ideen, wie man das angeht?
Antworten:
Ja, lesen Sie diesen Artikel auf der Website der Android-Entwickler, in dem beschrieben wird, wie das Framework mit der angezeigten Softtastatur umgeht.
Das
android:windowSoftInputMode
Attribut kann verwendet werden, um anzugeben, was pro Aktivität geschieht: ob die Größe des Layouts geändert wird oder ob ein Bildlauf durchgeführt wird usw.quelle
Sie können diesen Code auch in folgenden
onCreate()
Methoden verwenden:quelle
Fügen Sie in AndroidManifest.xml für Ihre Aktivität hinzu:
quelle
Nehmen Sie Änderungen an der Aktivität Ihrer Manifest-Datei vor
ODER
Nehmen Sie Änderungen an Ihrer
onCreate()
Methode in der Aktivitätsklasse vorquelle
Ein ähnliches Problem hatte ich mit meinem Layout, das aus einer Bildlaufansicht besteht. Immer wenn ich versuche, Text in EditText auszuwählen, wird die Aktionsleiste Kopieren / Ausschneiden / Einfügen mit dem folgenden Code nach oben verschoben, sodass die Größe des Layouts nicht geändert wird
Indem Sie es wie folgt ändern
1) AndroidManifest.xml
2) Datei style.xml im Aktivitätsstil
Es funktionierte.!!!!!!!!!!!!
quelle
Vergessen Sie in AndroidManifest.xml nicht Folgendes festzulegen:
und für RelativeLayout in ScrollView setzen Sie:
es wird in Ordnung sein
quelle
Fügen Sie für Aktivität in seiner Oncreate-Methode die folgende Zeile ein
und für Fragmente in seiner onCreate-Methode
quelle
Es sind 3 Schritte zu befolgen, um den Bildschirm nach oben zu scrollen.
PS Vergessen Sie nicht, Android hinzuzufügen: layout_gravity = "center" im übergeordneten relativen Layout.
quelle
Ich habe eine Methode von Diego Ramírez ausprobiert, sie funktioniert. In AndroidManifest:
In activity_main.xml:
quelle
Fügen Sie NestedScrollView um das Layout hinzu, das Sie scrollen möchten. Dies funktioniert einwandfrei
quelle
Ich habe eine Lösung für meine Probleme gefunden, die ziemlich genau so ist wie deine.
Zunächst habe ich nur ein LinearLayout mit 2 Elementen, eine ImageView und ein LinearLayout, das 2 EditText und eine Schaltfläche enthält. Daher musste ich sie im Vollbildmodus ohne Tastatur getrennt halten, und wenn die Tastatur angezeigt wird, sollten sie genauer hinsehen.
Also habe ich die Ansicht zwischen ihnen mit dem Attribut height in 0dp und weight 1 hinzugefügt, sodass ich meine Ansichten voneinander trennen kann. und wenn die Tastatur-Apper keine feste Höhe haben, ändern sie einfach die Größe und behalten den Aspekt bei.
Voila! Die Größe des Layouts und der Abstand zwischen meinen Ansichten sind gleich, wenn die Tastatur vorhanden ist oder nicht.
quelle
ConstraintLayout
und Weise erreichen, indem Sie a verwenden und einen oberen Abschnitt nach oben und einen unteren Abschnitt nach unten stecken . Wenn sich die Tastatur öffnet, wird die Größe natürlich geändert, indem der Platz in der MitteadjustResize
quelle
Hier ist der vollständige Manifestcode
quelle
Wenn Sie in Fragmenten sind, müssen Sie den folgenden Code zu Ihrem onCreate für Ihre Aktivität hinzufügen, um das Problem für mich zu lösen
quelle
Fügen Sie in Ihrer Manifestdatei die folgende Zeile hinzu. Es wird klappen
quelle
Ich habe gerade die folgende Zeile zum Layout der obersten Ebene hinzugefügt und alles hat funktioniert:
quelle
Okay, das ist sehr spät, aber ich habe festgestellt, dass die Tastatur alle Layouts unter diesem Edittext verschiebt, ohne die ListView zu verschieben, wenn Sie eine Listenansicht unter Ihrem Bearbeitungstext hinzufügen
Dies ist die einzige Lösung, die für mich funktioniert hat.
quelle
Kein einziger Rat löst mein Problem. Adjust Pan ist fast so wie Arbeit Adjust Resize . Wenn ich Adjust Nothing als Layout einstelle, bewege ich mich nicht nach oben, sondern verstecke meinen Edittext von unten, den ich gerade schreibe. Nach 24 Stunden ununterbrochener Suche fand ich diese Quelle und sie löste mein Problem.
quelle