2016-09-30 94 views
4

我正在以编程方式移动按钮的位置。按钮是相对布局。我研究过并发现我们可以使用.setY().setTop()。看起来他们应该工作一样。Android set view position - sety vs 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> 
+0

实际上,即使我使用1000或10000,setTop()也不起作用。 –

回答

2

setY()setTop()之间的主要区别是,setY()设置顶视图相对于可视区域的偏移,而setTop()设置顶视图的偏移相对于其父母

Android documentation

SETY()

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

机顶盒()

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

+0

感谢您根据Android文档提供的答案。你能否给我提供一个例子来说明这些函数的区别? –