日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android view getx 0,Android动画:解决通过View.getY()获取初始位置为0的问题

發布時間:2023/12/19 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android view getx 0,Android动画:解决通过View.getY()获取初始位置为0的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

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就變成了一個偶現的問題(偶現的問題解決起來更麻煩)。

總結

以上是生活随笔為你收集整理的android view getx 0,Android动画:解决通过View.getY()获取初始位置为0的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。