【Android Studio】TextViewをスクロールできるようにする方法

Sara

 
この記事では、TextView に長い文章を表示する時にスクロールできるようにする方法を紹介します。 

TextViewスクロールのデモ

動画

【Android Studio】TextViewをスクロールさせる方法

YouTube チャンネルはこちら

解説

長文テキストの用意

まずは strings.xml にテキストを用意します。 

Android Studio 画面左側にあるプロジェクト構造から app → res → values → strings.xml を開きます。

strings.xml を開いたら長文を定義します。テキストは自由に変更してください。

<string name="paragraph">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam libero
        neque, consectetur non magna eu, malesuada volutpat arcu. Fusce sit amet luctus dolor, vel
        gravida sapien. Sed pharetra ex vel ligula condimentum, et ultricies tellus pellentesque.
        Vestibulum eget risus cursus, accumsan felis sed, mollis magna. Proin congue in metus et
        scelerisque. Donec nisi enim, sollicitudin sit amet molestie vel, dignissim varius est.
        Vestibulum ac ante at ante interdum efficitur. Nulla rutrum erat eu velit ornare commodo.
        Curabitur purus leo, vehicula et sapien at, sollicitudin volutpat ligula. Mauris at diam
        quis sapien rutrum condimentum. Etiam hendrerit aliquet velit mattis cursus. Phasellus
        convallis nunc eget turpis semper lobortis. Maecenas accumsan, quam nec imperdiet accumsan,
        arcu lacus tempor nulla, a porttitor massa odio sit amet lacus. Curabitur euismod rutrum
        interdum.</string>

TextView の作成

xml ファイルを開いて、以下のように TextView を用意します。

<TextView
    android:id="@+id/textView"
    android:layout_width="250dp"
    android:layout_height="200dp"
    android:text="@string/paragraph"
    android:scrollbars="vertical"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
2行目
android:id="@+id/textView"

java ファイル側でスクロール設定をできるように id を指定します。

5行目
android:text="@string/paragraph"

先ほど strings.xml に定義したテキストを指定しています。

6行目
android:scrollbars="vertical"

縦方向にスクロールバーを表示します。
none(なし)horizontal(横方向)vertical(縦方向)から指定できます。

スクロールできるようにする

以下の1行を MainActivity.java の onCreate メソッド内に追加します。

((TextView) findViewById(R.id.textView)).setMovementMethod(new ScrollingMovementMethod());

2行に分けて書くこともできます。

TextView textView = findViewById(R.id.textView);
textView.setMovementMethod(new ScrollingMovementMethod());
必要な import

6行目あたりに2つの import 文が追加されます。

import android.text.method.ScrollingMovementMethod;
import android.widget.TextView;

アプリの実行

以上で完成です!

アプリを実行すると TextView がスクロールできるようになっています。

TextViewスクロールのデモ

まとめ

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

個人的にはあまり使ったことがなかったのですが、4択クイズアプリをカスタマイズしている方から質問頂いた機能です。

スマートフォンは画面サイズが限られているので、クイズの問題文やちょっとした説明文などの TextView をスクロールできるようにしておくと便利ですね。

この記事がお役に立てば嬉しいです。

guest
0 Comments
Inline Feedbacks
View all comments
ABOUT ME
Sara
Sara
運営者
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
0
この記事にコメントするx
記事URLをコピーしました