textAlingmentとgravityの違い

概要

AndroidのTextViewには、文字の位置を指定するプロパティがtextAlingmentgravityの2つあります。
この2つの違いや同時に指定したらどうなるのか調べたいと思います。

textAlignmentとgravityの違い

端的に違いを書くと、textAlignmentはViewのプロパティで、gravityはTextViewのプロパティです。
なので、textAlignmentはViewとその子クラス全てで使用できますが、gravityはTextViewとその子クラスでしか使用できません。
また、textAlignmentは横方向の位置指定しかできませんが、gravityは縦方向の指定もできるようになっており、より柔軟です。
さらに、textAlingmentはAPI level 17(Android 4.2/Jelly Bean MR1)で追加された比較的新しいAPIですが、gravityはAPI level 1から存在する歴史あるAPIです。

同時に指定した場合

画面いっぱいのTextViewを用意します。

textAlignmentにviewEndを指定して右揃えで表示できることを確認します。

android:textAlignment="viewEnd"

gravityにbottom|leftを指定して左下に表示できることを確認します。

android:gravity="bottom|left"

最後に両方指定して表示を確認します。

android:textAlignment="viewEnd"
android:gravity="bottom|left"

結果、textAlignmentの値が優先されますが、gravityの値が無視されるわけではないことがわかりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です