android移动view之后刷新布局导致移动后的view归回原位置1

当使用动画移动Android布局中的view后,若其他view刷新,移动的view会返回原始位置。通过自定义RefreshRelativeLayout并在onLayout中设置view位置来解决此问题。实现方法包括在自定义布局中保存view的新位置,并在重绘时应用。
摘要由CSDN通过智能技术生成

上篇讲了使用动画移动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 &#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值