LinearLayout을 스크롤 가능하게 만드는 방법은 무엇입니까?


답변:


459

선형 레이아웃을 <ScrollView>

예를 보려면 여기를 참조하십시오.

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout 
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       xmlns:android="http://schemas.android.com/apk/res/android">
       <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <LinearLayout 
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:orientation="vertical">
                  <!-- Content here -->
            </LinearLayout>
      </ScrollView>
 </LinearLayout>

참고 : fill_parent 는 더 이상 사용되지 않으며 API 레벨 8 이상에서 match_parent 로 이름이 변경되었습니다 .


1
@DanielMagnusson 링크는 여전히 여기에서 작동합니다 ... 여기 비디오 가이드가 있습니다 : youtube.com/watch?v=kNX996ZZ2CI
Bryan Denny

33
외부 LinearLayout이 필요하다고 생각하지 않습니다.
로렌스 Kesteloot

1
@Lawrence 아니요, 필요하지는 않지만 나머지 뷰의 모양에 따라 달라질 수 있습니다.
Bryan Denny

1
상단 linearlayout에 Scrollview 만있는 경우 "이 ScrollView 레이아웃 또는 LinearLayout 부모는 쓸모가 없습니다. 배경 속성을 다른보기로 전송하십시오"라는 경고가 나타납니다.
Niels

2
및 일부 importatn 통지 : ScrollView는 한 명의 자녀 만 있어야합니다
O-9

145
<ScrollView 
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/scroll" 
      android:layout_width="match_parent"
      android:layout_height="wrap_content">

      <LinearLayout 
            android:id="@+id/container"
            android:orientation="vertical" 
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
      </LinearLayout>

 </ScrollView>

4

태그를 사용하여 수행 할 수 있습니다 <ScrollView>. ScrollView의 경우 ScrollView자식이 하나 있어야합니다 .

전체 레이아웃을 스크롤 가능하게 <ScrollView>하려면 맨 위에 추가 하십시오. 아래 예를 확인하십시오.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll" 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout 
        android:id="@+id/container" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
            <!-- Content here -->
    </LinearLayout>

</ScrollView>

그러나 레이아웃의 일부를 스크롤 가능하게하려면 <ScrollView>해당 부분 내에 추가하십시오 . 아래 예를 확인하십시오.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="400dp">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
                <!-- Content here -->
        </LinearLayout>

    </ScrollView>

</LinearLayout>

4

시행 착오에 의해 내가 한 방법은 다음과 같습니다.

ScrollView - (the outer wrapper).

    LinearLayout (child-1).

        LinearLayout (child-1a).

        LinearLayout (child-1b).

ScrollView에는 자식이 하나만있을 수 있으므로 해당 자식은 선형 레이아웃입니다. 그런 다음 다른 모든 레이아웃 유형이 첫 번째 선형 레이아웃에서 발생합니다. 나는 아직 상대적인 레이아웃을 포함시키지 않으려 고 노력했지만, 그들은 나를 미치게 만들어서 정신이 돌아올 때까지 기다릴 것이다.


서식을 수정 해주세요. 첫 번째 줄이 코드 섹션에서 누락되었으며 사이트가 너무 사소한 수정이므로 사이트에서 수정할 수 없습니다.
Caltor

1

다음 속성을 사용해야하고 선형 레이아웃 내에 포함해야합니다.

<LinearLayout ...>
<scrollView ...> 

</scrollView>
</LinearLayout>

0

당신은 배치 할 필요가 있는 ScrollView를 레이아웃 파일의 첫 번째 자식으로와 지금 내부에있는 LinearLayout을 넣어. 이제 Android는 사용 가능한 콘텐츠 및 기기 크기를 기준으로 스크롤 가능 여부를 결정합니다.

ScrollView 는 둘 이상의 자식을 가질 수 없으므로 linearlayout에 형제가 없는지 확인하십시오 .


0
 <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <---------Content Here --------------->
            </LinearLayout>
       </ScrollView>
    </LinearLayout>

-27

linearLayout에 속성을 추가 할 수 있습니다. android:scrollbars="vertical"


4
스크롤바의 가시성 만 제어합니다. 그러나 스크롤 뷰를 생성하지는 않습니다.
Botond Kopacz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.