私は次の基本的なレイアウトを持っています
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<LinearLayout
Android:orientation="horizontal"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/title_bar_background">
<TextView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal"
Android:textAppearance="?android:attr/textAppearanceLarge"
Android:padding="10dp"
Android:text="HELLO WORLD" />
</LinearLayout>
<LinearLayout>
Xmlは正しいようですが、テキストは左に揃えられています。テキストビューは親の幅全体を占め、テキストビューは中央に設定されます。問題がわからない...
何が起こっているのかというと、TextViewは内部のLinearLayoutのwhole幅を埋めているため、すでにlayoutの水平方向の中心にあります。 Android:layout_gravity
を使用すると、指定された重力にウィジェット全体が配置されます。ウィジェット全体を真ん中に配置する代わりに、実際にやろうとしていることは、Android:gravity="center_horizontal"
で達成できるcontentを中央に配置し、Android:layout_gravity
属性を削除できる。
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<LinearLayout
Android:orientation="horizontal"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/title_bar_background">
<TextView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:textAppearance="?android:attr/textAppearanceLarge"
Android:padding="10dp"
Android:text="HELLO WORLD" />
</LinearLayout>
<TextView>
の中央に<Linearlayout>
を設定した場合、最初にAndroid:layout_width="fill_parent"
を必須に設定します
他の重力を使用する必要はありません
<LinearLayout
Android:layout_toRightOf="@+id/linear_profile"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical"
Android:gravity="center_horizontal">
<TextView
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:text="It's.hhhhhhhh...."
Android:textColor="@color/Black"
/>
</LinearLayout>
Android:gravity="center"
の代わりにTextView
でlayout_gravity
を使用します。
次を使用します:Android:layout_centerHorizontal = "true"
テキストビュー全体を中央に配置します