我遇到了为Android按钮属性分配的负值,如下所示。

android:layout_marginTop="-37px"

有谁知道这到底意味着什么...?提前致谢...

最佳答案

负边距可用于使视图在放置时对布局管理器来说更小。

因此,例如,假设一个视图的高度为h,marginTop为-m。放置此视图后,管理人员将认为视图的顶部为-m而不是0。在线性布局的情况下(假设垂直布局),这将导致视图呈现在前一个视图之上。

您可以在下面的示例中看到此情况,因为减小了textView2的上边距,它会覆盖在textView1上。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="-15dp"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>


不管这是否是指定的行为,我都不确定100%。罗曼·盖伊(Romain Guy)在此post中提到您可以使用负边距,但是在Google网上论坛的post中,他提到未指定负边距行为。

10-07 12:28