Android设置视图位置-setY vs setTop

Cas*_*tor 7 java android android-layout android-studio

我将以编程方式移动按钮的位置。按钮处于相对布局。经过研究,发现可以使用.setY().setTop()。看起来它们应该工作相同。

但就我而言,.setTop()根本不改变立场,.setY()只能奏效。我不确定自己做错了什么,但这对我来说很奇怪。

有谁可以解释setY()vs setTop()正确吗?有什么不同?

这是layout.xml

<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
       android:layout_width="match_parent"
       android:layout_height="40dp"
       android:layout_marginLeft="10dp"
       android:layout_marginRight="10dp"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

tec*_*yle 5

setY()和之间的主要区别setTop()setY()设置视图相对于可视区域setTop()的顶部偏移量,而设置视图相对于其父级的顶部偏移量。

来自Android 文档

设置Y()

设置此视图的视觉 y 位置,以像素为单位。这相当于将translationY属性设置为y传入的值与当前top属性之间的差值。

设置顶部()

设置此视图相对于其父视图的顶部位置。