Android设置视图位置- setty vs setTop



我将以编程方式移动按钮的位置。按钮处于相对布局。我研究了一下,发现我们可以用.setY().setTop()。看起来它们应该是一样的。

但在我的情况下,.setTop()根本不改变位置,.setY()只工作。我不知道我到底误解了什么,但这对我来说很奇怪。

有没有人可以正确地解释setY()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>

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

来自Android文档

调用setY ()

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

置顶()

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

您可以注意到setTop()不像setY()那样具有效果。原因是layout()修改了mTop字段。查看更改后的mTop的最简单方法是设置上距

最新更新