在根LinearLayout android:gravity =" center"显示填充

时间:2018-03-12 05:15:05

标签: android

当我删除重力属性时,图像将设置在右上角,但是当它使用时,它会在顶部留下填充物,为什么重力会留下空间? enter image description here

3 个答案:

答案 0 :(得分:0)

android:gravity="center"  ---> center_horizontal+center_vertical

center_vertical 属性将填充位于顶部。将其更改为center_horizo​​ntal会使视图/视图水平对齐中心,因此请使用

android:gravity="center_horizontal"

答案 1 :(得分:0)

我认为你为什么要在imageview中使用layout_marginTop?它不是必须设置的。你可以在imageview设置layout_gravity并在顶部线性布局中移除重力。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/black">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:src="@drawable/android_ic"
        android:layout_gravity="center"
        />

</LinearLayout>

答案 2 :(得分:0)

当您添加android:gravity="center"后,您的整个布局将位于屏幕的中心。由于您已在imageView下方添加了多个视图,因此已将其设置为位于顶部并留有一些空间。将其更改为android:gravity="center_horizontal",如果图像较小,则将高度设置为&#34; wrap_content&#34;而不是200dp,它可能还有额外的空间。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
>

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="200dp"
    android:src="@drawable/coffee"
    /></LinearLayout>