Android 设置视图位置 - setY vs setTop
Posted
技术标签:
【中文标题】Android 设置视图位置 - setY vs setTop【英文标题】:Android set view position - setY vs setTop 【发布时间】:2017-02-09 07:35:06 【问题描述】:我打算以编程方式移动按钮的位置。按钮处于相对布局中。我研究并发现我们可以使用.setY()
或.setTop()
。看起来它们应该工作相同。
但在我的情况下,.setTop()
根本不会改变位置,.setY()
只能工作。我不确定我误会了什么,但这对我来说很奇怪。
有没有人能正确解释setY()
vs setTop()
?
有什么区别?
这是layout.xml
:
<RelativeLayout
android:layout_
android:layout_>
<Button
android:layout_
android:layout_
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"/>
</RelativeLayout>
【问题讨论】:
其实setTop() 用1000或者10000也没用。 【参考方案1】:setY()
和setTop()
的主要区别在于setY()
设置视图的顶部偏移相对于可视区域,而setTop()
设置视图的顶部偏移相对于其父级。
来自Android documentation。
setY()
设置此视图的视觉 y 位置,以像素为单位。这相当于将
translationY
属性设置为传入的y
值与当前top
属性之间的差异。
setTop()
设置此视图相对于其父视图的顶部位置。
【讨论】:
感谢您基于 Android 文档的回答。您能否提供一个示例来准确显示这些功能的区别?【参考方案2】:您会注意到setTop()
不像setY()
那样有效果。原因是字段mTop
正在被layout()
更改。查看更改后的mTop
的最简单方法是设置上边距。
【讨论】:
以上是关于Android 设置视图位置 - setY vs setTop的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何将地图视图的缩放级别设置为当前位置周围 1 公里半径?
vs2019 - Xamarin:丢失“Java 开发工具包位置”的路径设置
Kotlin Android 视图绑定:findViewById vs Butterknife vs Kotlin Android Extension