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的安卓新手。
发布于 2015-11-14 05:22:36
在文档中,setTranslationX是:
设置此视图相对于其左侧位置的水平位置。这将有效地将对象放置在布局后,以及对象布局放置它的位置。
setX是:
以像素为单位设置此视图的视觉x位置。这等效于将translationX属性设置为传入的x值与当前left属性之间的差值。
因此,您可以将setTranlsationX看作是一个相对偏移量:将通常位置向左移动3个像素。而setX是一个固定的位置:移动您必须移动的任何位置,以便您最终在坐标X处绘图。
发布于 2018-03-29 15:26:23
setX/Y从0,0屏幕设置绝对位置。setTranlsationX/Y从布局中视图的默认位置设置位置。

发布于 2018-10-15 14:20:34
设置X和Y将设置视图相对于父视图左上角的位置(而不是屏幕上的绝对位置)。设置平移将相对于父视图布局的位置移动视图。(家长在(left, top)上展示了这一视图。)

https://stackoverflow.com/questions/33701657
复制相似问题