더 우아한 해결책은 ScrollView
의 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/