在Android中使用分层布局与中心对齐

时间:2010-10-03 13:10:17

标签: android android-layout

为什么以下代码不与中心对齐? 我该怎么做才能解决它?

<AbsoluteLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_gravity="center" 
    android:id="@+id/parent" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:background="@color/blue">

<RelativeLayout
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_width="wrap_content">


    <Button 
        android:layout_gravity="center" 
        android:id="@+id/Question01" 
        android:text="12 + 23" 
        android:gravity="center_vertical|center_horizontal"
        android:layout_height="70px" 
        android:lines="1" 
        android:textSize="40px" 
        android:layout_alignWithParentIfMissing="true" android:background="@drawable/orange_button" android:layout_margin="5px" android:layout_width="230px" android:textColor="@color/blue"/>


</RelativeLayout>
</AbsoluteLayout>

1 个答案:

答案 0 :(得分:3)

嗯,android:layout_gravity不是关于子视图的定位,而是关于当前视图在其父视图中的定位。尝试使用android:gravity AbsoluteLayout(您也可以切换到FrameLayout而不是Abdolute)。对于RelativeLayout,请在按钮上使用android:layout_centerInParent="true"

<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center" 
android:id="@+id/parent" 
android:layout_height="match_parent" 
android:layout_width="match_parent" 
android:background="@color/blue">
<RelativeLayout
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content">
<Button 
    android:layout_gravity="center" 
    android:id="@+id/Question01" 
    android:text="12 + 23" 
    android:gravity="center_vertical|center_horizontal"
    android:layout_height="70px" 
    android:lines="1" 
    android:textSize="40px" 
    android:layout_alignWithParentIfMissing="true"
    android:background="@drawable/orange_button" 
    android:layout_margin="5px" android:layout_width="230px" 
    android:textColor="@color/blue"
    android:layout_centerInParent="true"/>
</RelativeLayout>
</AbsoluteLayout>