web-dev-qa-db-ja.com

Android線形レイアウトは中央と右に揃えます

これは私が持っているものです:

enter image description here

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:id="@+id/LinearLayout01"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:background="#FFFFFF">
    <LinearLayout Android:id="@+id/LinearLayout01"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:orientation="horizontal"
        Android:background="#E30000"
        Android:layout_gravity="center_horizontal|center_vertical"
        Android:gravity="center_horizontal|center_vertical">
        <TextView 
            Android:id="@+id/TextView00"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:textColor="#FFFFFF"
            Android:textSize="20px"
            Android:textStyle="bold"
            Android:text="Something"
            Android:gravity="right|center_vertical"
            />
        <LinearLayout Android:id="@+id/LinearLayout01"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:orientation="horizontal"
            Android:gravity="right|center_vertical"
            Android:layout_gravity="center_vertical"
            Android:background="#E30000">
            <Button 
                Android:id="@+id/btnCalls"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:drawableLeft="@drawable/icon"
                Android:gravity="right|center_vertical"
            />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

そして私はこれが欲しい:

enter image description here

したがって、水平方向の中央にテキストを配置し、垂直方向の中央にボタンを配置します。

何が足りないのですか?私はRelativeLayoutを試したことがないので、LinearLayoutでこれを解決したいと思います。

9
erdomester

これを試してみてください

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:id="@+id/LinearLayout01"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:background="#FFFFFF">
    <LinearLayout Android:id="@+id/LinearLayout01"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:orientation="horizontal"
        Android:background="#E30000"
        Android:layout_gravity="center_horizontal|center_vertical" 
        Android:gravity="center_vertical">
        <TextView 
            Android:id="@+id/TextView00"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:textColor="#FFFFFF"
            Android:textSize="20px"
            Android:textStyle="bold"
            Android:text="Something"
            Android:layout_weight="1" 
            Android:gravity="center"/>
        <LinearLayout Android:id="@+id/LinearLayout01"
            Android:layout_height="wrap_content"
            xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:orientation="horizontal"
            Android:gravity="right|center_vertical"
            Android:layout_gravity="center_vertical"
            Android:background="#E30000"                
            Android:layout_width="wrap_content">
            <Button 
                Android:id="@+id/btnCalls"
                Android:layout_width="wrap_content"
                Android:drawableLeft="@drawable/icon"
                Android:gravity="right|center_vertical" 
                Android:layout_height="wrap_content" 
                Android:layout_margin="5dip"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
11
Vladimir
Android:gravity="right|center_vertical"

textViewを右揃えにします。 center_horizo​​ntalはどうですか?

そして、LinearLayoutsは同じIDを持っています。それ以上コードがない場合は、そのうちの1つを削除します。

29
banzai86

OPが意図したとおりに機能する答えはありませんでしたが、RelativeLayoutソリューションが最も近いものでした。 TextViewが中央に配置されていないことを除いて。ただし、layout_centerInParent = trueを使用すると、チャームのように機能します。

<RelativeLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">
    <TextView 
         Android:id="@+id/TextView00"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:textColor="#FFFFFF"
         Android:textSize="20px"
         Android:textStyle="bold"
         Android:text="Something"
         Android:layout_centerInParent="true" />

    <Button 
         Android:id="@+id/btnCalls"
         Android:drawableLeft="@drawable/icon"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:layout_alignParentRight="true"/>
</RelativeLayout>
2
grago

テキストビューでAndroid:gravity="right|center_vertical"を使用しました。 Android:gravity="center"を使用します。

1
Vineet Shukla

左に表示したい要素と右に表示したい要素の間に、水平LinearLayout内に空のビューを追加してみてください。例:

    <LinearLayout
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content" >

        <Button
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content" />

        <View
            Android:layout_width="0dp"
            Android:layout_height="0dp"
            Android:layout_weight="1"
            />                

        <Button
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content" />

    </LinearLayout>
1
alcsan

重力とは、コンポーネント内のコンポーネント内の物の位置を意味すると思います(textviewの場合、指定したテキストを意味します)。ここで、layout_gravityは、レイアウト全体におけるコンポーネント自体の位置を意味します。

使用してみてください:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout Android:id="@+id/LinearLayout01"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:orientation="vertical"
        Android:background="#FFFFFF"
        >
        <LinearLayout Android:id="@+id/LinearLayout01"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:orientation="horizontal"
            Android:background="#E30000"
            Android:layout_gravity="right"
            Android:gravity="center_vertical|right"                    
            >
                <LinearLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_gravity="right|center_vertical"
                    Android:gravity="center_vertical|center" 
                    Android:layout_weight="0.9"
                >
                    <TextView 
                        Android:id="@+id/TextView00"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:textColor="#FFFFFF"
                        Android:textSize="20px"
                        Android:textStyle="bold"
                        Android:text="Something"
                        Android:gravity="center_horizontal"
                        Android:layout_gravity="center_horizontal|center_vertical" 

                    />
                </LinearLayout>
                <LinearLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_gravity="right|center_vertical"
                    Android:gravity="center_vertical|right"                    
                    Android:paddingTop="5dip"
                    Android:layout_weight="0.1"
                >
                    <Button 
                        Android:id="@+id/btnCalls"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:drawableLeft="@drawable/icon"
                        Android:layout_gravity="center_vertical"
                        Android:gravity="center"                                    
                    />
                </LinearLayout>
        </LinearLayout>
    </LinearLayout>
0
Hiral Vadodaria

TextViewLinearLayoutのレイアウトの重みを定義します

Android:layout_weight="1"TextViewに設定します

Android:layout_weight="0"LinearLayoutに設定します

また、layout_width="wrap_content"LinearLayoutに変更し、layout_gravity="center"TextViewに設定します。

0
Ramakrishna

これに対する解決策は-Android:gravity = "center_vertical"

通常、それが機能することを確認するために、親の位置にも注意を払う必要があります。

0
Jatin Patro

ただRelativeLayoutとwallaaaを使用してください!!!

<RelativeLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">
    <TextView 
         Android:id="@+id/TextView00"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:textColor="#FFFFFF"
         Android:textSize="20px"
         Android:textStyle="bold"
         Android:text="Something"
         Android:gravity="center" />

    <Button 
         Android:id="@+id/btnCalls"
         Android:drawableLeft="@drawable/icon"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:layout_alignParentRight="true"/>
</RelativeLayout>
0
sdelvalle57