1. ホーム
  2. android

[解決済み] LinearLayoutを親の中心に配置するには?

2023-05-01 09:35:07

質問

SOで同じような質問を何度も見ましたが、何も役に立ちません。 私は異なるネストされたレイアウトの階層を持っており、すべてには android:layout_width="fill_parent" を持ち、一番内側のレイアウトは android:layout_width="wrap_content - それを中央(水平方向)に揃える必要があります。どうすればいいのでしょうか?

更新しました。 : 原因が判明しました。内側のLinearLayoutをRelativeLayoutに android:layout_width="fill_parent" でRelativeLayoutに入れると、コンテンツはまだラップされます。しかし、TableRow は本当に画面いっぱいに表示されています。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <TableRow >
            <LinearLayout 
            android:orientation="horizontal"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:text="1"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                     <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:text="2"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
             </LinearLayout>
           </TableRow>
        </TableLayout>
    </FrameLayout>
</LinearLayout>

どのように解決するのですか?

この2つの属性はよく混同されます。

  • android:gravity 使用されているViewのコンテンツの重力を設定します。 で使用されます。
  • android:layout_gravity は、View または レイアウト を親に相対的に設定します。 .

ということで、どちらかというと android:gravity="center" を親につけるか android:layout_gravity="center" を追加します。

私は何度もこれらを混ぜてしまい、なぜうまくセンタリングされないのかと思ったことがあります...。