为什么有时候像android:layout_marginBottom等变量的赋值为负数?

例如如下代码:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
  android:orientation="vertical"
  android:id="@id/Widget_2X4_frame"
  android:layout_width="fill_parent"
  android:layout_height="228.0dip"
  android:layout_marginTop="10.0dip"
  xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
  android:layout_width="fill_parent"
  android:layout_height="46.0dip"
  android:layout_marginBottom="-1.0dip"
  android:src="@drawable/widget_header" />
<include layout="@layout/widget_top" />
<include layout="@layout/widget_bottom" />
</LinearLayout>

解答:marginBottom 正值是 增大 与下面空间的距离,负值为减少距离。

比如你的设备分辨率是480x800,里面放个TextView marginTop是-50dip,那么你的textView就会显示到有限显示范围的距离最上面50dip的位置,在你的设备上你是看不到的。View把它存在了一个栈序列内。

05-11 17:10