webdevqa.jp.net

LinearLayoutのlayout_gravity

これは私のレイアウトです:

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/LinearLayout1"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:orientation="vertical" >

    <LinearLayout
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:id="@+id/LinearLayout2"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal" >

        <ImageView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="left"
            Android:layout_marginLeft="5dip" />

        <TextView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center_horizontal"
            Android:textColor="#ffffff" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:id="@+id/LinearLayout3"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal" >

        <Button
            Android:id="@+id/nazajGumb"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center"
            Android:text="@string/roaming_backbtn" >
        </Button>

        <Button
            Android:id="@+id/homeBtn"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="right"
            Android:text="@string/roaming_homebtn" >
        </Button>
    </LinearLayout>

    <Spinner
        Android:id="@+id/spinner"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center_horizontal"
        Android:layout_marginTop="15dip"
        Android:Prompt="@string/roaming_spinnerPrompt" />

    <TextView
        Android:id="@+id/tv1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center_horizontal"
        Android:text="Random text"
        Android:textColor="#ffffcc" />

    <Button
        Android:id="@+id/testBtn"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center"
        Android:text="test" >
    </Button>
</LinearLayout>

LinearLayout2でのImageViewとTextViewの配置、およびLinearLayout3でのボタンの配置が機能しない(レイアウトの重力を使用)。

ここで何が欠けていますか?

18
DixieFlatline

それはAndroid:layout_gravityの動作方法ではありません。 leftcenter_horizontalの両方のパラメーターは、Android:orientationverticalの場合にのみ機能します。あなたが望むものを達成するには、RelativeLayoutを使うほうが良いです:

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

        <ImageView   
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_marginLeft="5dip"/>

        <TextView 
        Android:layout_height="wrap_content" 
        Android:layout_width="wrap_content"  
        Android:layout_centerHorizontal="true"
        Android:textColor="#ffffff"/>
  </RelativeLayout>    
65
Cristian