Android

TextViewの文字列が中央揃えになってくれなくて悲しい

More than 3 years have passed since last update.


いざ中央揃え…あれ?

TextViewに入れた文字列を中央揃えで表示したい!

TextViewにはsetTextAlignment()という、すごくそれらしいメソッドがあります。

しかしこいつ、どんな値を設定しても、文字列は中央揃えになってくれませんでした。


解決策

先に結論から。

setGravity()を使いましょう。

Android StudioのGUIエディタでは、gravityと書かれた項目です。

layout:gravityではないので注意しましょう!!!

gravityの方


なぜsetTextAlignment()では中央揃えにならないのか

実はsetTextAlignment()は、TextViewではなく、その基底クラスのViewのメソッド。

どんな処理をしているのか、イマイチよくわかりません。

(SDKのソース読んでも、なにがしかのレイアウトに影響するフラグをゴリゴリいじってることしかわかりませんでした)

詳しい方、このメソッドの存在意義を教えて下さい…

追記

@bilyakudan が以下のリンクを教えてくれました。

Text/Layout Alignment in Android (textAlignment, gravity)

結局、setTextAlignment()が何をしてくれるのかは闇の中のようです…