【Android】HorizontalScrollViewを使用して画面を横スクロールに対応する

こんにちは!

前回はScrollViewを使用して画面を縦スクロールができるように対応しました。

今回はHorizontalScrollView使用して画面を横スクロールできるようにしてみましょう!

横スクロールはあまり他アプリで見ないですがたま〜に見るので知っておいて損はないと思います!

HorizontalScrollViewとは?

ScrollViewの横バージョンのView (名前の通りですね笑)

HorizontalScrollViewを使用する

レイアウトXMLにHorizontalScrollViewを使用してスクロールしてみましょう!

筆者は横スクロールさせたいコンテンツとして4つのViewを配置しています。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <View
                android:layout_width="250dp"
                android:layout_height="match_parent"
                android:background="#880000" />

            <View
                android:layout_width="250dp"
                android:layout_height="match_parent"
                android:layout_marginStart="32dp"
                android:background="#008800" />

            <View
                android:layout_width="250dp"
                android:layout_height="match_parent"
                android:layout_marginStart="32dp"
                android:background="#000088" />

            <View
                android:layout_width="250dp"
                android:layout_height="match_parent"
                android:layout_marginStart="32dp"
                android:background="#888800" />

        </LinearLayout>

    </HorizontalScrollView>

</LinearLayout>

ポイント

1.スクロールさせたいコンテンツをHorizontalScrollViewの子要素に追加する

ScrollView同様スクロールさせたいコンテンツをHorizontalScrollViewの子要素に追加するだけでスクロールしてくれます。

注意点としてHorizontalScrollViewの子要素は一つのみです。(こちらもScrollView同様ですね)

HorizontalScrollViewに複数の子要素を追加するとクラッシュしてしまいます。

コンテンツの要素が一つの場合はそのコンテンツViewをHorizontalScrollViewに追加すれば問題ないですが、

コンテンツの要素が複数ある場合はHorizontalScrollViewに子要素としてLinearLayout等のViewGroupを追加してViewGroupに対してコンテンツの要素を追加するとクラッシュを回避する事ができます。

最後に

いかがでしたでしょうか?

たま〜に使うHorizontalScrollView。

ScrollViewと使い方が同じので使いやすいですね

それでは!

コメント

タイトルとURLをコピーしました