Ich versuche eine Login-Ansicht zu implementieren, wo mehrere EditTexte und ein Logo auf dem Bildschirm mit einer ButtonBar am unteren Rand angezeigt werden, etwa so:
alt text http://russellhaering.com/media/addAccount.png
Das Problem ist, dass auf sehr kleinen Bildschirmen, besonders wenn sie seitwärts gedreht werden, die gesamte Hauptansicht nicht auf den Bildschirm passt.
Ich habe derzeit
%Vor%Ich habe versucht, das erste LinnearLayout in einer ScrollView zu kapseln, die wie folgt aussieht:
%Vor%Aber das führt zu zwei Problemen:
Die ScrollView scrollt nicht, selbst auf Bildschirmen, auf denen die Daten nicht alle passen
Die ButtonBar schwebt über der Bildschirmtastatur und verdeckt bei der Tastaturbetätigung noch mehr Bildschirm.
Alles funktionierte gut, als ich die Tasten in der ScrollView hatte, aber jetzt, da ich sie in der ButtonBar habe, habe ich eine Menge Schwierigkeiten, das herauszufinden.
Es stellte sich heraus, dass die Lösung zwei Schritte erforderte:
Die Unfähigkeit zum Scrollen war ein Ergebnis der ScrollView hinter der Buttonleiste. Um dies zu beheben, habe ich die ScrollView unterhalb der Buttonleiste definiert und dann android:layout_above="@id/buttonbar_login"
verwendet, um zu bewirken, dass die ScrollView sich vollständig über der Buttonleiste befindet.
Offenbar wird beim Öffnen der Bildschirmtastatur bei einer ScrollView die Größe geändert, so dass die Tastenleiste mit der Tastatur aufsteigen kann. Um das zu beheben, habe ich das Manifest geändert und android hinzugefügt: windowSoftInputMode="adjustPan", um die Größe der ScrollView zu verhindern.
Wenn Ihr Anwendungsfall das Ausblenden der Schaltflächenleiste im Querformat unterstützt, können Sie Resources.getSystem().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE
überprüfen und die Schaltflächenleiste auf View.GONE
setzen.
Sie müssen wahrscheinlich auch android:windowSoftInputMode="adjustResize"
für <activity>
in Ihrer Manifest-Datei festlegen. Android fügt es nur in adjustResize
automatisch ein, wenn das Root-Layout ein ScrollView
(iirc) ist.
Tags und Links android scrollview relativelayout buttonbar