Androidプログラマへの道 〜 Moonlight 明日香 〜 - 水平方向にスクロールする
画面に貼り付けたウィジェットが画面からあふれた場合, そのあふれた部分は見えなくなる. そこで, 画面サイズをカバーするために, スクロール機能を実装することで, あふれた部分を見ることができるようになる.
水平方向のスクロールを行いたい場合, ホリゾンタルスクロールビュー(HorizontalScrollView)を使う.

水平方向にスクロールする.



  • res/values/strings.xml
    • ボタンに表示する文字列を定義する.
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="app_name">水平方向にスクロールする</string>
  <string name="hokkaido">北海道</string>
  <string name="aomori">青森県</string>
  <string name="iwate">岩手県</string>
  <string name="miyagi">宮城県</string>
  <string name="akita">秋田県</string>
  <string name="yamagata">山形県</string>
  <string name="fukushima">福島県</string>
  <string name="ibaragi">茨城県</string>
  <string name="tochigi">栃木県</string>
  <string name="gunma">群馬県</string>
  <string name="saitama">埼玉県</string>
  <string name="chiba">千葉県</string>
  <string name="tokyo">東京都</string>
  <string name="kanagawa">神奈川県</string>
  <string name="niigata">新潟県</string>
  <string name="toyama">富山県</string>

      ・・・ 省略 ・・・

  <string name="kagoshima">鹿児島県</string>
  <string name="okinawa">沖縄県</string>
</resources>
  • res/layout/main.xml
    • HorizontalScrollViewを定義する.
    • ボタンビューを水平方向に配置する.

<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <!-- 北海道 -->
    <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/hokkaido"
      />
    <!-- 東北 -->
    <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/aomori"
      />
    <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/iwate"
      />
    <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/miyagi"
      />

      ・・・ 省略 ・・・

    <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/kagoshima"
      />
    <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/okinawa"
      />
  </LinearLayout>
</HorizontalScrollView>

水平方向にスクロールして, "東京都"を選択したところ.