在根线性布局中 android:gravity= "center" 显示填充



当我删除重力属性时,图像将设置在右上角,但是当它使用时,它会在顶部留下填充,为什么重力会留下空间???? 在此处输入图像描述

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

center_vertical属性将填充保留在顶部。将其更改为center_horizontal将使视图/视图水平居中对齐,因此请使用

android:gravity="center_horizontal"

我想为什么要在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>

添加android:gravity="center"后,整个布局将位于屏幕中央。由于您在imageView下方添加了多个视图,因此已将其管理为具有一些空间的顶部。将其更改为android:gravity="center_horizontal",如果图像很小,请将高度设置为"wrap_content"而不是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>

最新更新