【问题标题】:Android set view position - setY vs setTopAndroid 设置视图位置 - setY vs setTop
【发布时间】:2017-02-09 07:35:06
【问题描述】:

我打算以编程方式移动按钮的位置。按钮处于相对布局中。我研究并发现我们可以使用.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>

【问题讨论】:

  • 其实setTop() 用1000或者10000也没用。

标签: java android android-layout android-studio


【解决方案1】:

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

来自Android documentation

setY()

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

setTop()

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

【讨论】:

  • 感谢您基于 Android 文档的回答。您能否提供一个示例来准确显示这些功能的区别?
【解决方案2】:

您会注意到setTop() 不像setY() 那样有效果。原因是字段mTop 正在被layout() 更改。查看更改后的mTop 的最简单方法是设置上边距。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多