在Android中垂直居中视图

Jer*_*gan 34 layout user-interface android

我试图View使用以下布局在屏幕上垂直居中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <EditText 
        android:text="example text"  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.在EditText屏幕上方依然.谁能解释我在这里做错了什么?

注意:如果我添加center_horizontallayout_gravity属性然后它水平居中,但仍然不垂直居中.

更新:使用android:gravity="center_vertical"父母工作.我还是不明白为什么android:layout_gravity="center_vertical"对孩子不起作用.

Bos*_*one 25

我跟踪Google群组的答案,这是 ©Romain Guy:

好吧,首先RelativeLayout忽略layout_gravity.然后你需要知道引力意味着"将重力应用于此视图的内容",而layout_gravity意味着"将重力应用于其父视图中的此视图".因此,在TextView上,重力将文本对齐TextView的边界,而layout_gravity将TextView在其父级的边界内对齐.

  • 这是如何回答上述问题的?OP根本没有使用RelativeLayout,它没有回答为什么它不起作用. (4认同)
  • 同意以上评论,这不应该选择答案 (3认同)