首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setX()、setTranslationX()、setY()和setTranslationY()

setX()、setTranslationX()、setY()和setTranslationY()
EN

Stack Overflow用户
提问于 2015-11-14 04:59:20
回答 3查看 28.6K关注 0票数 23

setX()、setY()与setTranslationX()、setTranslationY()有什么区别?他们是在现有坐标上设置偏移量还是设置绝对位置?

如果他们设置的是绝对坐标,这不会与父布局的约束冲突吗?

假设我们有像| View 1 | View 2 | View 3|这样的东西

在LinearLayout中,如果我们使用view2.setX(0);view2.setTranslationX(0);将视图2重叠视图1或将视图1推到一边,会发生什么?

同样,如果我们有一个RelativeLayout的子节点,它的alignParentBottom设置为true,但我们在代码中手动将该子节点的y坐标设置为0,会发生什么呢?哪条布局规则胜出?

基本上,我对手动坐标如何影响容器的布局规则以及平移和X/Y之间的差异感到困惑。如果这看起来微不足道,我提前道歉,但我是来自iOS的安卓新手。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-14 05:22:36

在文档中,setTranslationX是:

设置此视图相对于其左侧位置的水平位置。这将有效地将对象放置在布局后,以及对象布局放置它的位置。

setX是:

以像素为单位设置此视图的视觉x位置。这等效于将translationX属性设置为传入的x值与当前left属性之间的差值。

因此,您可以将setTranlsationX看作是一个相对偏移量:将通常位置向左移动3个像素。而setX是一个固定的位置:移动您必须移动的任何位置,以便您最终在坐标X处绘图。

票数 29
EN

Stack Overflow用户

发布于 2018-03-29 15:26:23

setX/Y从0,0屏幕设置绝对位置。setTranlsationX/Y从布局中视图的默认位置设置位置。

票数 19
EN

Stack Overflow用户

发布于 2018-10-15 14:20:34

设置XY将设置视图相对于父视图左上角的位置(而不是屏幕上的绝对位置)。设置平移将相对于父视图布局的位置移动视图。(家长在(left, top)上展示了这一视图。)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33701657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档