定位LinearLayout(水平中心)

时间:2014-01-23 14:43:48

标签: android android-layout

我在定位LinearLayout时遇到问题。请参阅图像以查找问题。如果我在指定的字段中使用wrap_content,则它不会居中。如果我使用match_parent,它会居中,但组件间隔太远。如何'包装'内容,但水平居中布局? (这里不考虑垂直)

enter image description here

<LinearLayout
android:layout_width="wrap_content"  !!! (or match_parent)
android:layout_height="wrap_content"
android:layout_margin="25dip"
android:orientation="horizontal" >

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="1"
    android:gravity="center"
    android:orientation="horizontal" >

    <ImageButton
        android:id="@+id/game1CheckButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="4dp"
        android:background="@null"
        android:contentDescription="@string/checkbutton"
        android:gravity="center"
        android:onClick="clickCheck"
        android:src="@drawable/checkbutton" />
</LinearLayout>

<TextView
    android:id="@+id/game1Step"
    android:layout_width="200dip"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:contentDescription="@string/game1step1"
    android:gravity="center"
    android:textColor="#FFFFFF"
    android:textSize="50sp"
    android:textStyle="bold" />

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="1"
    android:gravity="center"
    android:orientation="horizontal" >

    <ImageButton
        android:id="@+id/game1NextButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="4dp"
        android:background="@null"
        android:clickable="false"
        android:contentDescription="@string/nextbutton"
        android:enabled="false"
        android:gravity="center"
        android:onClick="clickNext"
        android:src="@drawable/nextbutton" />
</LinearLayout>

2 个答案:

答案 0 :(得分:4)

尝试使用android:layout_width="wrap_content"android:layout_gravity="center_horizontal"

答案 1 :(得分:1)

据我所知,无论垂直位置如何,您都希望3个对象都位于水平中心。

所以,我会这样做:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="25dip"
    >
    <!-- The center object -->
    <TextView
        android:id="@+id/game1Step"
        android:layout_width="200dip"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_gravity="center"
        android:contentDescription="@string/game1step1"
        android:gravity="center"
        android:textColor="#FFFFFF"
        android:textSize="50sp"
        android:textStyle="bold"
    />
    <!-- The left object -->
    <ImageButton
        android:id="@+id/game1CheckButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/game1Step"
        android:layout_gravity="center"
        android:layout_margin="4dp"
        android:background="@null"
        android:contentDescription="@string/checkbutton"
        android:gravity="center"
        android:onClick="clickCheck"
        android:src="@drawable/checkbutton"
    />
    <!-- The right object -->
    <ImageButton
        android:id="@+id/game1NextButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/game1Step"
        android:layout_gravity="center"
        android:layout_margin="4dp"
        android:background="@null"
        android:clickable="false"
        android:contentDescription="@string/nextbutton"
        android:enabled="false"
        android:gravity="center"
        android:onClick="clickNext"
        android:src="@drawable/nextbutton"
    />
</RelativeLayout>