MADOCHAN BLOG

強いプログラマーを目指す30代のブログ



【Android Studio】XMLを書き換えてTextViewのTextを右寄せにする

本に従ってのスロットマシン作りは一通り終えたので、何か簡単なアプリを作ってみようと電卓アプリの作成を始めました。
計算結果の表示を画面の右寄せでやりたくてぐぐり、textAlignmentを右にするといいよ!と書いてあったのでやってみたところ…

<TextView
  android:id="@+id/formula"
  android:layout_width="match_parent"
  android:layout_height="80dp"
  android:layout_weight="1"
  android:contentDescription="@string/formula_text"
  android:text="★" // 計算結果の代わりに★マークを表示させる
  android:textAlignment="right" // textAlignmentを右に
  android:textSize="30sp" />
  

できない…
(★の位置が左のまま)

Android Studioはandroid:textAlignment=まで入力すれば大抵、値はこういうのが入りますよと予測値を出してくれます。
そこにrightがなかったのでできない気がする…と思ったんですが、案の定左に位置したままです。
android:layout_width="match_parent"ではなくandroid:layout_width="wrap_content"なのかなーとか。
rightじゃなくて別の値名があるのかな、と予測値を入力していっても頑なに左に位置する文字。

調べても解決策が見つけられず、これは先生に聞くかteratailで質問した方が良いのでは?!?と思い始めたとき。
ふと、予測値にandroid:textAlignment="gravity"があり、その後でandroid:gravity="right"としたらrightの設定ができるのでは?と思いつきました。

試してみると…

<TextView
  android:id="@+id/formula"
  android:layout_width="match_parent"
  android:layout_height="80dp"
  android:layout_weight="1"
  android:contentDescription="@string/formula_text"
  android:text="★" // 計算結果の代わりに★マークを表示させる
  android:textAlignment="gravity" // 変更した点
  android:gravity="right" // 変更した点
  android:textSize="30sp" />

★の位置が右になりました!やったー!!!!!!できました!!!
どうしてこうなったのかは調べてもわからなかったんですが、とりあえずできたということで引き続き制作を進めます!

作成環境
windows8
Android Studio 3.2.1