この記事では、TextView に長い文章を表示する時にスクロールできるようにする方法を紹介します。
java ファイルに1行追加するだけでスクロールできるようになるので、ぜひお試しください
動画
解説
長文テキストの用意
xml ファイルに直接長文テキスト書くとコードが読みづらくなり、Warning も出てしまうので 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行目
java ファイル側でスクロール設定をできるように id を指定します。
5行目
先ほど strings.xml に定義したテキストを指定しています。
6行目
縦方向にスクロールバーを表示します。
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
TextView と ScrollingMovementMethod の部分が赤くなった場合は、青いメッセージが出ている状態で alt と return を同時に押して下さい。
6行目あたりに2つの import 文が追加されます。
import android.text.method.ScrollingMovementMethod;
import android.widget.TextView;
アプリの実行
以上で完成です!
アプリを実行すると TextView がスクロールできるようになっています。動かない場合は最後に貼ってあるサンプルコードと比較してみてください。
まとめ
いかがだったでしょうか?
個人的にはあまり使ったことがなかったのですが、4択クイズアプリをカスタマイズしている方から質問頂いた機能です。
スマートフォンは画面サイズが限られているので、クイズの問題文やちょっとした説明文などの TextView をスクロールできるようにしておくと便利ですね。
この記事がお役に立てば幸いです
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。
オンラインスクールを選ぶときのポイント
- 無料体験があること
- 個別サポートがあること
自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。
ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい????
1. TechAcademy(テックアカデミー)
2. CodeCamp(コードキャンプ)
3. Treehouse
英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。