Я думаю, що більш елегантне рішення було б використовувати в ScrollView
«S android:fillViewport
власності. A ScrollView
дещо відрізняється тим, як він поводиться з його переглядом вмісту (може мати лише один), навіть якщо ви встановите match_parent
( fill_parent
) на його, ScrollView
він не дасть такого інтервалу для його перегляду вмісту, натомість поведінка за замовчуванням призначена для ScrollView
завершення вміст незалежно від того, що ви вказали для цього представлення даних. Що android:fillViewport
означає підказати ScrollView
розтягнути його вміст, щоб заповнити вікно перегляду ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). Отже, у цьому випадку ваш LinearLayout
елемент буде розтягнутий, щоб відповідати вікні перегляду, і якщо висота буде відстати від вікна перегляду, то він буде прокручуватися, що саме те, що ви хочете!
Прийнята відповідь не буде працювати належним чином, коли вміст виходить за межі, ScrollView
тому що він все ще буде центром подання вмісту, спочатку змушуючи його відрізати частину перегляду, а 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:fillViewport="true">
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="check" />
</LinearLayout>
</ScrollView>
Просто пам’ятайте, що причина, в якій він зараз зосереджена тут, полягає в тому, що android:gravity
з того LinearLayout
часу, коли ScrollView
буде розтягнутий, LinearLayout
так майте це на увазі залежно від того, що ви додали до макета.
Ще один хороший читати далі , ScrollView
хоча і нема про зосередженні , а про fillViewport
є http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/