HOME技術AndroidAndroidアプリ:レイアウトの途中にスクロールを入れる

Androidアプリ:レイアウトの途中にスクロールを入れる

Androidアプリで以下のようなレイアウトを組む方法です。

weightSumを使う

上、中央、下のパーツに分けて、上下のパーツは固定、中央のパーツはスクロール可能にします。
最初にLinearLayoutをverticalで大外の枠をつくります。
それから上段と下段はLinearLayout、中央はScrollViewにします。
これらを比率で分割するには、親要素のLinearLayoutに
android:weightSum=”1″を設定します。
これにより、全体で1になるように比率を組むことができるようになります。
ここでは、最初のLinearLayoutはandoroid:layout_weight=”0.2″
中央のScrollViewはandroid:layout_weight=”0.7、
最後のLinearLayoutはandroid:layout_weight=”0.1″
のように設定してあります。

<?xml version="1.0" encoding="utf-8"?>
<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">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:weightSum="1"
    >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:orientation="horizontal"
    android:weightSum="1"
    android:layout_weight="0.2"
    >
</LinearLayout>
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.7"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:weightSum="1"
        >

    <Button
        android:id="@+id/q1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="------"
        android:textSize="30sp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        />

    <Button
        android:id="@+id/q2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="------"
        android:textSize="30sp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        />
    </LinearLayout>

</ScrollView>
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:layout_weight="0.1"
        android:weightSum="1"
        android:gravity="right"
        >

        <Button
            android:id="@+id/help"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_weight="0.2"
            android:layout_marginRight="10dp"
            android:text="help"
            />

</LinearLayout>
</LinearLayout>
</LinearLayout>

関連記事

Androidアプリ:アプリを更新する場合の設定

一度リリースしたAndroidアプリを更新してアップロードする場合には、必ずバージョンを更新しなければなりません。 今回はバージョンの更新方法について調べました。 build.gradleの修正 bu…続きを読む

Androidアプリ:画面遷移時に値を渡す

Androidで画面遷移時に値を渡す方法です。 数値を渡す場合 MainActivity.java public class MainActivity extends Activity { @Over…続きを読む

Androidアプリ:ボタンやEditTextに背景色・枠線をつける

Android Studioで、ボタンやEditTextに背景色や枠線をつける方法です。 コントロールの見た目の設定をするには、別途専用のxmlファイルを生成して、そこに書いた設定を読み込むようにしま…続きを読む

Androidアプリ:背景に画像を指定する

Android Studioを使って、背景に画像を設定する方法です。 背景画像を格納する 今回は以下の画像を使います。 画像サイズなどは適当につくります。 Androidは様々な解像度がありますが、画…続きを読む

Androidアプリ:ボタンの仕様を1つのxmlファイルにまとめる

Android Studioで、ボタンなどの色や形の指定をする際、1つのxmlファイルで、ボタンを押したときと押していないときの状態を指定する方法です。 xmlファイルの指定 Android Stud…続きを読む

Androidアプリ:ボタンやEditTextに余白(パディング)を設定する

Android StudioでボタンやEditTextに余白(パディング)を設定します。 余白の設定はレイアウトファイル(activity_main.xml)を編集します。 activity_main…続きを読む

Androidアプリ:ボタンの表示/非表示

Androidでボタンの表示/非表示をプログラム上からコントロールします。 MainActivity.java   Button button = findViewById(R.id.but…続きを読む

Androidアプリ:Class ‘Anonymous class derived from OnItemClickListener’…のエラー

Android Studioで開発中に、ListViewを使っていて以下のようなエラーメッセージが出た場合の理由です。 Class ‘Anonymous class derived from OnIt…続きを読む

Androidアプリ:アダプティブアイコンに対応する

AndroidではOS 8.0からAdaptiveアイコン(アダプティブアイコン)というアイコンを用意する必要がでてきました。 これまでの通常のアイコン、ラウンドアイコンに加えて、アダプティブアイコン…続きを読む

Androidアプリ:テキストをリスト表示する

Androidアプリで、ListViewを使い、配列に格納したテキストをリスト表示します。 MainActivity.java import android.app.Activity; import …続きを読む