Je veux que le contenu à l'intérieur du scrollView soit au centre.
<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>
Remarque: il n'y a pas d' android:gravity
attribut pour scrollvew.
tout sol: -
android
scrollview
Padma Kumar
la source
la source
android:windowSoftInputMode="stateHidden|adjustResize"
mais, ne faites pas défiler, aidez-moi s'il vous plaîtRelativeLayout
comme vue racine. Il peut êtreFrameLayout
etandroid:layout_gravity="center_vertical"
pourScrollView
Que dis-tu de ça?
la source
Je pense qu'une solution plus élégante serait d'utiliser la
ScrollView
de »android:fillViewport
la propriété. AScrollView
est un peu différent dans la façon dont il traite sa vue de contenu (ne peut en avoir qu'une), même si vous définissezmatch_parent
(fill_parent
) sur la,ScrollView
cela ne donnera pas autant d'espacement à sa vue de contenu, au lieu de cela, le comportement par défaut est pourScrollView
le contenu indépendamment de ce que vous spécifiez pour cette vue. Ce queandroid:fillViewport
fait, c'est dire auScrollView
pour étirer son contenu pour remplir la fenêtre ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). Donc, dans ce cas, votreLinearLayout
serait étiré pour correspondre à la fenêtre et si la hauteur va derrière la fenêtre, elle pourra faire défiler ce qui est exactement ce que vous voulez!La réponse acceptée ne fonctionnera pas correctement lorsque le contenu s'étend au-delà de,
ScrollView
car elle centrera toujours la vue du contenu en le coupant d'abord une partie de la vue, et leScrollView
centré dans une autre mise en page fonctionne mais ne semble tout simplement pas correct, en plus Je pense que cela entraînera également une erreur de peluches (parent inutile ou quelque chose du genre).Essayez quelque chose comme ceci:
Rappelez-vous simplement que la raison pour laquelle il est centré ici maintenant est à cause du
android:gravity
sur leLinearLayout
car leScrollView
va s'étirerLinearLayout
alors gardez cela à l'esprit en fonction de ce que vous ajoutez à la mise en page.Une autre bonne lecture sur
ScrollView
mais pas au sujet de centrage mais environfillViewport
est http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/la source
Utilisez cet attribut dans ScrollView
Exemple
la source
Pour @Patrick_Boss - ce qui a empêché le contenu de couper dans mon application était de changer la gravité et layout_gravity en center_horizontal pour le LinearLayout.
Cela a fonctionné pour moi ... mais je ne sais pas si cela fonctionnera pour vous.
Modification de la réponse de @ Ghost -
la source
Une chose à considérer est ce qu'il ne faut PAS définir . Assurez-vous que vos contrôles enfants, en particulier les
EditText
contrôles, n'ont pas laRequestFocus
propriété définie.Cela peut être l'une des dernières propriétés interprétées sur la mise en page et il remplacera les paramètres de gravité sur ses parents (
layout
ouScrollView
).la source
en utilisant la vue de défilement à l'intérieur du ConstraintLayout. Ça a marché pour moi
La hauteur de la vue de défilement doit être wrap_content
la source