<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:background="#999999"
android:orientation="horizontal">
<View
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="#ff0000" />
</LinearLayout>
</RelativeLayout>
可以看到我们这里的View并没有处在中央的位置,原因是因为LinearLayout中的horizontal属性的影响。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:background="#999999"
android:orientation="horizontal">
<View
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="#ff0000" />
</LinearLayout>
</RelativeLayout>
那么如果想在LinearLayout中的layout_gravity="center"子控件居中怎么办呢?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:background="#999999"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="horizontal">
<View
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="#ff0000" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
总结:LinearLayout中的orientation会对layout_gravity="center"有影响。
vertical影响垂直居中;
horizontal影响水平居中;
也可以参考这里:
http://stackoverflow.com/questions/12149316/android-layout-gravity-center-does-not-center