android - LinearLayoutをスクロール可能にするにはどうすればよいですか?


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




Answers


線形レイアウトを<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>



<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>



ここで私は試行錯誤してそれをやった。

ScrollView - (外側のラッパー)

 LinearLayout (child-1).

      LinearLayout (child-1a).

      LinearLayout (child-1b

Scrollviewには子が1つしかないので、その子は線形レイアウトです。 他のすべてのレイアウトタイプは、最初の線形レイアウトで発生します。 私はまだ相対的なレイアウトを含めることを試みていないが、彼らは私の精神が戻るまで待つためにナットを運転する。




これは<ScrollView>タグを使用して行うことができます。 ScrollViewの場合、 ScrollViewには1 つの子が必要です。

フルレイアウトをスクロール可能にする場合は、上部に<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>



 <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>



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

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




Eclipse ADT:グラフィカルレイアウト - >コンポジット - > ScrollViewを使用している間




linearLayoutにatrributeを追加することができます: android:scrollbars="vertical" scrollbars android:scrollbars="vertical"