LinearLayout中的layout_gravity="center"问题

来源:互联网 发布:远程会诊软件哪家好 编辑:程序博客网 时间:2024/04/29 18:13
<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


0 0
原创粉丝点击