arcanum_jp’s blog

おっさんの日記

AndroidでScrollViewを画面いっぱいにして下にボタンを配置したい

こういう画面が作りたかったのさ。え?明らかにエクセル方眼紙だろって?そこは突っ込むとこじゃない!

 ①下にアクションするボタンなどを配置
 ②内容が多くなるとスクロールされる
 ③もちろんそのときは下に配置したのははじめ見えない

できた

こんな感じ・・

 ポイントはScrollViewの属性に android:fillViewport="true" を指定すること。通常ScrollViewは、layouot_heightにfill_parentを指定しても親いっぱいに広がらない。なのでこのfillViewportをtrueで指定してやる。

    <ScrollView
        android:fillViewport="true"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

<?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:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity">

    <ScrollView
        android:fillViewport="true"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">


        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            
            <!-- コンテンツとかのタグ ->
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">

                <TextView
                    android:text="内容は無いよう"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" />

                <TextView
                    android:text="内容は無いよう"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" />

                <TextView
                    android:text="内容は無いよう"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" />

            </LinearLayout>


            <!-- フッターのアクションボタン ->
            <LinearLayout
                android:gravity="bottom"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

                <LinearLayout
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content">

                    <Button
                        android:text="押す"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />

                    <Button
                        android:text="押す"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />

                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

    </ScrollView>

</LinearLayout>