自定义有滑动事件的ViewGrounp时如何固定其中某个图形的位置?
我发现很多带指示器的ViewPager
控件都是继承一个RelativeLayout
然后通过代理ViewPager
的方法来伪装成一个ViewPager
,而indicator
就是覆盖在这个ViewPager
之上。
我觉得这样做有点点乱。就想通过继承一个ViewPager
然后在onDraw
自己通过canvas
将indicator
画上去,结果发现自己太年轻了,indicator
在画上去的时候,布局是显示在ViwePager
的item 0
上(看起来像是在item 0 之上),ViewPager
滑动的时候indicator
也跟着跑了。
如上图显示,我的indicator
跟着跑了。接着我让我的indicator
的x坐标
在onDraw
中用getLocationOnScreen()
中获得的做处理。结果发现不行。
这样的话我能想到的又只有像其他一样在ViewPager
之外包裹一层RelativeLayout
,(当然我觉得FrameLayout
更好)
但是有点不甘心这样处理的控件不能用一个View
解决而是要3个View
互相嵌套觉得不爽啊,请教大神有没有什么办法可以让一个ViewGounp
处理控件内内容滑动的同时,某些内容不被同时移动呢?
发出这个问题之前我在想,我是不是应该监听ViewPager
的偏移量然后在onDraw
中不断向内容的移动反方向移动?我去试试
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我监听了
onScrollChanged()
获取了偏移量,然后在onDraw()
中,加上了这个偏移量解决了这个问题。但是发现
onDraw
中indicator
会被ViewPager
中的内容覆盖掉~~这个方案还是不行啊!!求助