我在视图上使用 getX() 和 getY() 方法来实现一些特殊的拖动逻辑(不是动画,即我从不使用 setX/Y 方法,我只需要 getter 来检查)。
但是,我开始意识到这些仅在 API 11 之后可用。
getX() 的文档说这是添加了“left”属性和“translationX”属性。一切都很好,除了 get/setTranslationX() 也是从 API 11 开始出现的。
我想知道是否有任何关于这个方法在幕后返回的知识,所以我可以提出一个解决方法。
我在视图上使用 getX() 和 getY() 方法来实现一些特殊的拖动逻辑(不是动画,即我从不使用 setX/Y 方法,我只需要 getter 来检查)。
但是,我开始意识到这些仅在 API 11 之后可用。
getX() 的文档说这是添加了“left”属性和“translationX”属性。一切都很好,除了 get/setTranslationX() 也是从 API 11 开始出现的。
我想知道是否有任何关于这个方法在幕后返回的知识,所以我可以提出一个解决方法。
在你的项目中使用nineOldAndroid.jar
文件并使用这种方式
import com.nineoldandroids.view.ViewHelper;
ViewHelper.setTranslationX(myView, translation);
ViewHelper.getX(myView);
getLeft() 和 getTop() 怎么样。在我看来,只要视图尚未被翻译(setTranslationX() 和 setTranslationY()),这些在旧 API 中也无效。
使用android.support.v4.view.ViewCompat
解决方案是:
ViewCompat.getY(mView);
它与旧的 android 设备兼容。
我想它不再相关了,但以防万一有人在寻找它: http: //nineoldandroids.com/