android:textAlignment
とandroid:gravity
の違いは何ですか?Androidでのテキスト/レイアウトの位置合わせ(テキストアライメント、重力)
37
A
答えて
37
私が見ることができるのは、textAlignmentがViewクラスのメンバーであり、重力がTextViewクラスのメンバーであることです。したがってTextViewとそのサブクラスでは重力を使用できますが、すべてのビューでtextAlignmentを使用できます。
TextViewとそのサブクラスにはテキスト整列機能がいくつか必要なので、textAlignmentには基本オプションだけがある重力オプションが多数あります。違いについての明確な文書は見つけられていないので、私の推測だけですが。
ドキュメントのこれら2つのリンク:textAlignmentとgravityを見ることができます。
3
私が見た限り、textAlignmentはほとんど使用されていないようです。 その説明では、右揃えまたは左揃えにする必要があります。 重力が改良されたtextAlignmentのようです。
3
API 15の場合、android:textAlignment
は望ましい結果を得ていない可能性があります。以下のスニペットは、android:textAlignment="center"
を使用して最初のTextView
オブジェクトを中央に配置しようとします。 2番目はandroid:gravity="center_horizontal"
を使用します。 textAlignment
は効果がありませんが、重力はうまく働きます。 API 17+では、textAlignment
はテキストを期待通りに中央に配置します。
テキストがすべてのリリースで正しく整列されていることを確認するために、私は重力を取ります。
は17+ APIでレイアウトを結果として生じる:
<LinearLayout
android:layout_width="50dp"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Fri"
android:textAlignment="center"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="29"
android:gravity="center_horizontal"
android:textSize="18sp" />
</LinearLayout>
結果のレイアウト