Android:textAlignment
とAndroid:gravity
の違いは何ですか?
私が見ることができるのは、textAlignmentがViewクラスのメンバーであり、重力がTextViewクラスのメンバーであることだけです。そのため、TextViewとそのサブクラスでは重力を使用でき、すべてのビューでtextAlignmentを使用できます。
TextViewとそのサブクラスにはさらにテキスト配置機能が必要なので、textAlignmentには基本的なオプションしか存在しない重力のオプションがさらにあることがわかります。違いについての明確な文書を見つけていないので、それは私の推測にすぎませんが。
ドキュメントの次の2つのリンクを見ることができます: textAlignment および gravity 。
API 15では、Android:textAlignment
が期待した結果にならない場合があります。以下のスニペットは、Android:textAlignment="center"
を使用して最初のTextView
オブジェクトを中央に配置しようとします。 2番目はAndroid:gravity="center_horizontal"
を使用します。 textAlignment
は効果がありませんが、重力は正常に機能します。 API 17+では、textAlignment
はテキストを期待どおりに中央揃えにします。
すべてのリリースでテキストが正しく配置されていることを確認するために、私は重力を使います。
<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>
API 15の結果のレイアウト:
API 17+の結果のレイアウト:
私が見た限りでは、textAlignmentはほとんど使用されていないようです。説明により、右または左の位置合わせを行う必要があります。重力は改善されたtextAlignmentのようです。
明示的に言及されていない別のポイント:
アプリケーションでRTLサポートが無効になっている場合(例: Android:supportsRtl="false"
マニフェストapplication
タグの場合、View
textAlignment
はテキストの配置に対して機能しませんが、TextView
gravity
は機能します。
gravity
を好むもう1つの理由。