上篇讲了使用动画移动view的位置,但是移动view位置后,布局中如有其它view刷新会导致之前移动的view回归到原始位置。。。
可自定义布局,并在借助重绘解决,具体在onlayout中设置view的位置即可: mView.layout(mLeft, mTop, mRight, mBottom);
自定义的相对布局
public class RefreshRelativeLayout extends RelativeLayout {
View mView;
boolean mNeedLayout = false;
int mLeft = 0;
int mTop = 0;
int mRight = 0;
int mBottom = 0;
public RefreshRelativeLayout(Context context) {
this(context, null);
}
public RefreshRelativeLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public RefreshRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setTargetViewLayout(float xFromDeltaDistance, float xToDeltaDistance, float yFromDeltaDistance, float yToDeltaDistance, int duration, int delay, final boolean isBack) {
// mNeedLayout &#