setX,setTranslationX,setLeft,LayoutParam.leftMargin,Matrix ..它们的区别是什么

时间:2015-03-06 16:50:53

标签: android

关于设置视图位置的另一个问题。如果您想移动视图,那么您可以执行 setX setTranslationX setLeft LayoutParam.leftMargin Offcourse还覆盖了onDraw方法并使用 Matrix / Bitmap / Canvas 操作。

我想知道差异是什么。这些都是ultimetly调整相同的值,即视图的x坐标吗? 将这一切都集中在未来读者的一篇文章中也是好事

到目前为止,我知道,

  • LayoutParam.LeftMargin:适用于所有API(特定于Api 8)
  • SetTranslation:视图的原始左边界与新左边界之间的差异。虽然我听说也许不是持久的?

任何人都可以了解这些差异,是否会影响不同的财产或同一财产?

1 个答案:

答案 0 :(得分:2)

我认为setLeft和setX()之间的主要区别在于setLeft()相对于其父视图,其中setX()只是设置相对于整个屏幕的位置,这是与setTranslationX()相同。

setLeft()术语中,这意味着布局系统可以更改其布局位置。例如,如果我们在滚动RecyclerView时使用setLeft,系统会相应地更改其位置,因此在这种情况下正确使用setX()