web-dev-qa-db-ja.com

LinearLayoutをどのようにスクロール可能にしますか?

私は画面上にたくさんの項目を持っています、そして私はユーザーがスクロールできるようにスクロールバーを使う必要があります。ただし、スクロールは表示されないか、機能していません。どのようにスクロールバーをLinearLayoutに追加することが可能ですか?

225
Troj

線形レイアウトを<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>
433
Bryan Denny
<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>
138
krunal shah

これが私の試行錯誤によるやり方です。

ScrollView - (外側のラッパー).

 LinearLayout (child-1).

      LinearLayout (child-1a).

      LinearLayout (child-1b

Scrollviewは1人の子しか持てないので、その子は線形レイアウトです。その場合、他のすべてのレイアウトタイプは最初の線形レイアウトで発生します。私はまだ相対的なレイアウトを含めようとしませんでした、しかし、それらは私の実を動かすので私は私の正気が戻るまで待ちます。

4
Patrick Murphy

これはタグ<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>
3
Avijit Karmakar

次の属性を使用してそれを線形レイアウトで囲む必要があります。

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

</scrollView>
</LinearLayout>
1

レイアウトファイルの最初の子として ScrollView を配置し、その中に線形レイアウトを配置する必要があります。今、Androidはスクロール可能かどうかを表示するかどうか利用可能なコンテンツとデバイスのサイズに基づいて決定します。

ScrollView には複数の子を含めることができないため、linearlayoutに兄弟がないことを確認してください。

0
Tulsi
 <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"`enter code here`>

                <---------Content Here --------------->
            </LinearLayout>
       </ScrollView>
    </LinearLayout>
0
anksanu