我打算以编程方式移动按钮的位置。按钮处于相对布局中。我进行了研究,发现我们可以使用.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>
答案 0 :(得分:2)
setY()
和setTop()
之间的主要区别在于setY()
设置视图相对于可视区域的顶部偏移量,而setTop()
设置视图相对于其父的顶部偏移量。
<强> SETY()强>
设置此视图的视觉y位置(以像素为单位)。这相当于将
translationY
属性设置为传入的y
值与当前top
属性之间的差异。
<强>机顶()强>
设置此视图相对于其父级的顶部位置。
答案 1 :(得分:0)
您会注意到,setTop()
并不像setY()
那样有效。原因是mTop
正在更改字段layout()
。看到更改后的mTop
的最简单方法是设置最高边距。