Android view setLeft setX验证总结
Android view使用需要重点关注2点:
1. 布局
2. 计算各个view的大小。
详细内容大家可以参考很多介绍android原理的书。
计算各个view的大小主要有2个目的:
1. 给需要显示的view计算屏幕尺寸。
2. 在多个view有层次时,方便计算可见和隐藏区域。
这个概念比较直接。
当计算完大小之后,就是计算应该把各个view放在那个位置上了。
现在我有如下需求:
设计一个类似360的浮动球。初始的时候,只有一半显示在屏幕左侧。当用户拖动的时候,可以显示完全。
这个本质上就是一个纯布局问题。
经过试验:
如果要让一个视图部分在屏幕外面,只能用setX方法。使用setLeft没有任何效果。
分析原因前,先理解下坐标系统。一个view需要布局,必须知道应该把这个view放在什么位置上。位置就是(x,y)(二维系统),需要知道x,y的值就必须知道坐标原点。当把view放在不同的坐标系统,就会得到不同的坐标原点。常见的有:
1. 相对应屏幕原点。
2. 相对于父窗口原点。
SetX:是设置相对于屏幕原点。
SetLeft:是设置相对于父窗口原点。
我在Activity中的onCreate方法中,设置setLeft,没有任何效果,设置setX