ScrollView 내부의보기가 모든 장소를 차지하지는 않습니다.


144

ScrollView 안에 RelativeLayout이 있습니다. 내 RelativeLayout은 android:layout_height="match_parent"있지만 뷰가 전체 크기를 차지하지는 않지만 wrap_content와 같습니다.

실제 fill_parent / match_parent 동작을 수행하는 방법이 있습니까?

내 레이아웃 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

    <ImageView
    android:id="@+id/top"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:scaleType="fitXY"
    android:src="@drawable/top" />

    <ImageView
    android:id="@+id/header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/top"
    android:scaleType="fitXY"
    android:src="@drawable/headerbig" />

    <ImageView
    android:id="@+id/logo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/header"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="3dp"
    android:src="@drawable/logo" />

    <ScrollView
    android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/bottom"
    android:layout_below="@+id/logo"
    android:background="@drawable/background" >

        <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

             <ImageView
            android:id="@+id/dashboard01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/dashboard02"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="30dp"
            android:src="@drawable/dashboard01"
            android:visibility="visible" />

            <ImageView
            android:id="@+id/dashboard02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="10dp"
            android:src="@drawable/dashboard02" />

             <ImageView
            android:id="@+id/dashboard03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/dashboard02"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="40dp"
            android:src="@drawable/dashboard03"
            android:visibility="visible" />
         </RelativeLayout>
    </ScrollView>

    <ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/logo"
    android:layout_centerHorizontal="true"
    android:scaleType="fitXY"
    android:src="@drawable/bar" />

    <ImageView
    android:id="@+id/bottom"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:scaleType="fitXY"
    android:src="@drawable/bottom" />

</RelativeLayout>

답변:


461

android:fillViewport="true"ScrollView에 추가 하십시오

android:layout_height=”fill_parent”"높이를 부모의 높이로 설정" 을 의미 한다는 것을 기억하십시오 . 이것은을 사용할 때 분명히 원하는 것이 아닙니다 ScrollView. 결국 ScrollView내용물이 항상 그 자체만큼 크면 쓸모가 없게됩니다. 이 문제를 해결하려면이라는 ScrollView 특성을 사용해야합니다 android:fillViewport. true로 설정하면이 속성으로 인해 스크롤보기의 자식이 ScrollView필요한 경우 높이로 확장됩니다 . 자식이 키보다 크면 ScrollView속성이 적용되지 않습니다.

http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/


3
HorizontalScrollView도 마찬가지입니다.
CoolMind

내 하루를 저장, scrollview이없이 짜증 : p
Qasim

매력처럼 일했다! 감사. 당신은 내 하루를 구했습니다.
아나 스 아짐

그것이 효과가 없다면, 자식이 아닌 ScrollView에서 속성을 설정하십시오!
Enselic September

큰 답변 주셔서 감사합니다. 또한 내 일 저장
두디

8

Scrollview의 yout xml 레이아웃에 android : fillViewport = "true"를 추가하십시오.

<ScrollView android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="@color/green"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fitsSystemWindows="true"
    android:fillViewport="true"
    >

<!--define views here-->


</ScrollView>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.