Я хочу, чтобы содержимое внутри scrollView находилось в центре.
<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>
Примечание:android:gravity
для scrollvew нет атрибута.
любой соль: -
android
scrollview
Падма Кумар
источник
источник
android:windowSoftInputMode="stateHidden|adjustResize"
но не прокручивайте, помогите мне, пожалуйстаRelativeLayout
вид в качестве корневого. Может бытьFrameLayout
иandroid:layout_gravity="center_vertical"
заScrollView
Как насчет этого?
источник
Я думаю, что более элегантное решение было бы использовать в
ScrollView
«Sandroid:fillViewport
собственности. AScrollView
немного отличается в том, как он обрабатывает свое представление содержимого (может иметь только один), даже если вы установилиmatch_parent
(fill_parent
) в,ScrollView
он не будет давать такой большой интервал для его представления содержимого, вместо этого поведение по умолчанию заключается в том,ScrollView
чтобы обернуть контент независимо от того, что вы указали для этого представления. Чтоandroid:fillViewport
означает, чтоScrollView
нужно растянуть содержимое, чтобы заполнить область просмотра ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). Итак, в этом случае вашLinearLayout
будет растянут, чтобы соответствовать области просмотра, и если высота будет позади области просмотра, тогда она будет прокручиваемой, что именно то, что вы хотите!Принятый ответ не будет работать должным образом, когда контент выходит за пределы,
ScrollView
потому что он по-прежнему будетScrollView
центрировать представление содержимого, сначала заставляя его отрезать часть представления, а центрирование в другом макете работает, но просто не кажется правильным, кроме того Я думаю, что это также приведет к ошибке lint (бесполезный родитель или что-то в этом роде).Попробуйте что-то вроде этого:
Просто помните, что причина, по которой он сейчас центрируется здесь, заключается в
android:gravity
том,LinearLayout
что онScrollView
будет растягиваться,LinearLayout
поэтому имейте это в виду в зависимости от того, что вы добавляете в макет.Еще один хороший читать дальше ,
ScrollView
хотя и не о сосредоточении , а оfillViewport
является http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/источник
Используйте этот атрибут в ScrollView
пример
источник
Для @Patrick_Boss - то, что остановило вырезание контента в моем приложении, было изменение гравитации и layout_gravity на center_horizontal для LinearLayout.
У меня это сработало ... но не уверен, сработает ли это для вас.
Модификация ответа @ Ghost -
источник
Следует учитывать, что НЕ устанавливать . Убедитесь , что ваши дочерние элементы, особенно
EditText
элементы управления, не имеютRequestFocus
набор свойств.Это может быть одно из последних интерпретируемых свойств в макете, и оно переопределит настройки гравитации для своих родителей (
layout
илиScrollView
).источник
используя вид прокрутки внутри ConstraintLayout. Это сработало для меня
Высота прокрутки должна быть wrap_content
источник