下面列出了android.support.v4.view.ViewCompat#setY ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public void reset() {
if (!mIsCreated) {
return;
}
mShowing = false;
if (mFabAnimation != null) {
mFabAnimation.cancel();
}
if (mSheetAnimation != null) {
mSheetAnimation.cancel();
}
if (mOverlayAnimation != null) {
mOverlayAnimation.cancel();
}
vFab.setVisibility(View.VISIBLE);
ViewCompat.setX(vFab, mFabInfo.relativeTopLeft.x);
ViewCompat.setY(vFab, mFabInfo.relativeTopLeft.y);
vSheetContainer.setVisibility(View.GONE);
vOverlay.setVisibility(View.GONE);
}
public static void setY(final @NonNull View v, final int y) {
if (Build.VERSION.SDK_INT >= 11) {
ViewCompat.setY(v, y);
} else {
ViewGroup.MarginLayoutParams params =
(ViewGroup.MarginLayoutParams) v.getLayoutParams();
params.topMargin = y;
v.setLayoutParams(params);
}
}
public static void setY(final @NonNull View v, final int y) {
if (VERSION.SDK_INT >= 11) {
ViewCompat.setY(v, y);
} else {
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams)v.getLayoutParams();
params.topMargin = y;
v.setLayoutParams(params);
}
}
public void invalidate() {
if (mIsCreated) {
vOverlay.invalidate();
vContent.invalidate();
ViewCompat.setX(vSheetContainer, mFabInfo.bottomRight.x - vSheetContainer.getMeasuredWidth());
ViewCompat.setY(vSheetContainer, mFabInfo.bottomRight.y - vSheetContainer.getMeasuredHeight());
}
}
@Override
public void onAnimationUpdate(ValueAnimator animation) {
View target = mTarget.get();
if (target != null) {
float degree = (float) animation.getAnimatedValue();
float x = mArcMetric.getAxisPoint().x + mArcMetric.mRadius * Utils.cos(degree);
float y = mArcMetric.getAxisPoint().y - mArcMetric.mRadius * Utils.sin(degree);
ViewCompat.setX(target, x - target.getMeasuredWidth() / 2);
ViewCompat.setY(target, y - target.getMeasuredHeight() / 2);
}
}