找了很多资料都是用OnTouchListener监听拖动控件,但是当父控件刷新,即父控件内有控件刷新,之前拖动的控件就会回到原位,经过多次修改,终于实现了拖动并不会自动回到原位
/** 上传按钮随意移动 */
int lastX, lastY; //记录移动的最后的位置
int left = 0, top = 0, right = 0, bottom = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
//获取Action
int ea=event.getAction();
switch(ea){
case MotionEvent.ACTION_DOWN: //按下
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
case MotionEvent.ACTION_MOVE: //移动
//移动中动态设置位置
int dx =(int)event.getRawX() - lastX;
int dy =(int)event.getRawY() - lastY;
left = v.getLeft() + dx;
top = v.getTop() + dy;
right = v.getRight() + dx;
bottom = v.getBottom() + dy;
//不超出屏幕范围
if(left < 0){
left = 0;
right = left + v.getWidth();
}
if(right > deviceWidth){
right = deviceW

本文探讨了在Android开发中遇到的问题——如何实现控件在被拖动后,即使父控件刷新,仍能保持在新位置。通过OnTouchListener监听并避免控件回到原位的技术实现进行了详细介绍。
最低0.47元/天 解锁文章
1937

被折叠的 条评论
为什么被折叠?



