Ich möchte den Inhalt in der scrollView als Mitte.
<ScrollView
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="12dp"
android:paddingBottom="20dp"
android:scrollbarStyle="outsideOverlay"
android:layout_gravity="center" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="check"
android:gravity="center_vertical|center_horizontal"/>
</ScrollView>
Hinweis: Es gibt kein android:gravity
Attribut für scrollvew.
jedes Sol: -
android
scrollview
Padma Kumar
quelle
quelle
android:windowSoftInputMode="stateHidden|adjustResize"
aber nicht gescrollt, hilf mir bitteRelativeLayout
als Root-Ansicht zu verwenden. Es kann seinFrameLayout
undandroid:layout_gravity="center_vertical"
fürScrollView
Wie wäre es damit?
quelle
Ich denke , eine elegantere Lösung wäre es , die zu verwenden
ScrollView
istandroid:fillViewport
Eigentum. A unterscheidetScrollView
sich ein wenig darin, wie es die Inhaltsansicht behandelt (kann nur eine haben), selbst wenn Siematch_parent
(fill_parent
) auf setzenScrollView
, gibt es der Inhaltsansicht nicht so viel Abstand, stattdessen ist das Standardverhalten dasScrollView
Umschließen der Inhalt, unabhängig davon, was Sie für diese Ansicht angeben. Sieandroid:fillViewport
müssen denScrollView
Inhalt erweitern, um das Ansichtsfenster zu füllen ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). In diesem FallLinearLayout
würden Sie also gedehnt, um mit dem Ansichtsfenster übereinzustimmen. Wenn die Höhe hinter dem Ansichtsfenster liegt, kann es gescrollt werden, was genau das ist, was Sie wollen!Die akzeptierte Antwort funktioniert nicht richtig, wenn der Inhalt über das hinausgeht,
ScrollView
da die Inhaltsansicht immer noch zuerst zentriert wird, wodurch ein Teil der Ansicht abgeschnitten wird, und dieScrollView
zentriert wird, in einem anderen Layout zentrierte Funktion funktioniert, fühlt sich aber einfach nicht richtig an Ich denke, es wird auch zu einem Flusenfehler führen (nutzloser Elternteil oder etwas in dieser Richtung).Versuchen Sie so etwas:
Denken Sie daran , dass der Grund , warum es hier wird jetzt wegen der zentriert ist
android:gravity
auf dieLinearLayout
seit demScrollView
dehnen dieLinearLayout
so halten , dass, je nachdem , was Sie mit dem Layout hinzuzufügen.Eine weitere gute lesen Sie weiter ,
ScrollView
obwohl nicht über Zentrierung aber etwafillViewport
ist http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/quelle
Verwenden Sie dieses Attribut in ScrollView
Beispiel
quelle
Für @Patrick_Boss - was das Ausschneiden des Inhalts in meiner Anwendung verhinderte, war die Änderung der Schwerkraft und der Layout-Schwerkraft in center_horizontal für das LinearLayout.
Es hat bei mir funktioniert ... aber ich bin mir nicht sicher, ob es bei Ihnen funktionieren wird.
Änderung der Antwort von @ Ghost -
quelle
Eine zu berücksichtigende Sache ist, was NICHT eingestellt werden soll . Stellen Sie sicher, dass Ihre untergeordneten Steuerelemente, insbesondere
EditText
Steuerelemente, nicht über die Steuerelemente verfügenRequestFocus
Eigenschaftssatz.Dies ist möglicherweise eine der zuletzt interpretierten Eigenschaften des Layouts und überschreibt die Schwerkrafteinstellungen der übergeordneten Elemente (
layout
oderScrollView
).quelle
Verwenden der Bildlaufansicht im ConstraintLayout. Es ist für mich gearbeitet
Die Höhe der Bildlaufansicht sollte wrap_content sein
quelle