Android动画:解决通过View.getY()获取初始位置为0的问题
来源:互联网 发布:mac电脑怎么截长图 编辑:程序博客网 时间:2024/06/06 19:16
问题描述
View.getY()返回为0
问题背景
用ObjectAnimator进行平移动画的时候需要获取控件的初始位置以及结束位置,比如
ObjectAnimator animY = ObjectAnimator.ofFloat(rankRibbon, "Y", rankRibbon.getY(), rankRibbon.getY() + 30);
是将rankRibbon向下移动30px
也可以通过translationY设置控件的初始位置和平移相对距离
ObjectAnimator animY = ObjectAnimator.ofFloat(rankSlogan, "translationY", rankSlogan.getY(), -30);
是将rankSlogan向上移动30px
在这2个例子中都用到了getY(),通过getY返回该控件相对父控件的距离。
如果getY()返回是0就会出现动画异常。
解决方式
如果一个View初始化的时候设置的是View.Gone,那么该view在getY的时候获取的就是0,所以可以在xml里将View设置为invisiable,这样就不影响正常的获取view的位置。
在动画中经常需要获取View的位置,设置View的偏移,所以这个问题稍不注意就经常发生。
另一个问题
能够通过在获取getY之前setVisibility(View.VISIABLE)解决?
不能。这样设置之后好像是起到了将View显示的效果,但如果View并没有完全显示出来,马上获取getY有时也会是0,这样getY就变成了一个偶现的问题(偶现的问题解决起来更麻烦)。
阅读全文
0 0
- Android动画:解决通过View.getY()获取初始位置为0的问题
- Android: 解决动画完成后位置恢复到初始位置的问题
- Android: 解决动画完成后位置恢复到初始位置的问题
- android获取view宽高的几种方法,解决获取高宽为0问题
- Android中View的getX,getY...
- Android中View的getX,getY...
- 通过android:descendantFocusability解决listview每一项或项中view无法获取焦点的问题
- Android自定义控件布局刷新自定义控件回到初始位置问题的解决
- Android 获取view的位置和设置view的位置
- 学习Android onTouch偶然遇到的关于获取点击坐标(getX(),getY())的问题
- Android获取View位置
- android获取位置location为null的问题
- Android移动view动画问题 关于view的位置移动了,但view里面绑定的监听器还在原位
- Android移动view动画问题 关于view的位置移动了,但view里面绑定的监听器还在原位
- Android移动view动画问题 关于view的位置移动了,但view里面绑定的监听器还在原位
- Android移动view动画问题 关于view的位置移动了,但view里面绑定的监听器还在原位
- getx,gety,getwidth,getheight获取控件大小,高度为0
- Android解决在onCreate()中获取View的width、Height为0的方法
- 归并排序
- var, let, const,、 命令的理解和区别;
- django 1.11.X初学指南(1)
- CSS知识部分总结(不含CSS3)
- Linux进程间通信(2)--消息队列
- Android动画:解决通过View.getY()获取初始位置为0的问题
- 常用控件(3)
- 使用iframe的方式实现共用的头部和尾部页面
- SpannableString&SpannableStringBuilder一些简单介绍
- express中session模块
- String类
- 浮动与定位部分知识总结
- 第一章 Java基础
- synchronized学习笔记1