全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android 自定义可拖拽View界面渲染刷新后不会自动回到起始位置

以自定义ImageView为例:

/**
 * 可拖拽ImageView
 * Created by admin on 2017/2/21.
 */
public class FloatingImageView extends ImageView{
  public FloatingImageView(Context context) {
    super(context);
  }
  public FloatingImageView(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
  public FloatingImageView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
  }
  @TargetApi(Build.VERSION_CODES.LOLLIPOP)
  public FloatingImageView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
  }
  int startX;
  int startY;
  int left;
  int top;
  int[] temp = new int[]{ 0, 0 };
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    boolean isMove = false;
    int x = (int) event.getRawX();
    int y = (int) event.getRawY();
    switch (event.getAction()){
      case MotionEvent.ACTION_DOWN: // touch down so check if the
        startX = x;
        startY = y;
        temp[0] = (int) event.getX();
        temp[1] = y - getTop();
        break;
      case MotionEvent.ACTION_MOVE: // touch drag with the ball
        left = x - temp[0];
        top = y - temp[1];
        if(left < 0){//控制左边界不超出
          left = 0;
        }
        layout(left, top, left + getWidth(),top + getHeight());//自由拖拽
        break;
      case MotionEvent.ACTION_UP:
        if (Math.abs(x - startX) > 2 || Math.abs(y - startY) > 2){//判断是否移动,再一定范围内不算是移动,解决触发事件冲突
          //将最后拖拽的位置定下来,否则页面刷新渲染后按钮会自动回到初始位置
          //注意父容器
          RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) getLayoutParams();
          lp.setMargins(left, top,0,0);
          setLayoutParams(lp);
          //确定是拖拽
          isMove = true;
         }
        break;
    }
    return isMove ? true : super.onTouchEvent(event);
   }
}

以上所述是小编给大家介绍的Android 自定义可拖拽View界面渲染刷新后不会自动回到起始位置,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # 可拖拽view  # android ListView和GridView拖拽移位实现代码  # Android自定义ListView实现仿QQ可拖拽列表功能  # android RecyclerView侧滑菜单  # 滑动删除  # 长按拖拽  # 下拉刷新上拉加载  # Android利用RecyclerView实现全选、置顶和拖拽功能示例  # Android中在GridView网格视图上实现item拖拽交换的方法  # Android使用RecycleView实现拖拽交换item位置  # Android自定义View实现可以拖拽的GridView  # Android ReboundScrollView仿IOS拖拽回弹效果  # Android使用CardView作为RecyclerView的Item并实现拖拽和左滑删除  # Android自定义View实现拖拽效果  # 拖拽  # 自定义  # 小编  # 在此  # 给大家  # 为例  # 所述  # 给我留言  # 感谢大家  # 定下来  # 判断是否  # 疑问请  # 有任何  # LOLLIPOP  # VERSION_CODES  # Build  # defStyleRes  # TargetApi  # defStyleAttr  # int 


相关文章: 如何在橙子建站上传落地页?操作指南详解  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  微信推文制作网站有哪些,怎么做微信推文,急?  如何用虚拟主机快速搭建网站?详细步骤解析  建站VPS推荐:2025年高性能服务器配置指南  如何通过FTP服务器快速搭建网站?  如何通过NAT技术实现内网高效建站?  实现虚拟支付需哪些建站技术支撑?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  C++如何使用std::optional?(处理可选值)  如何在Windows环境下新建FTP站点并设置权限?  公司门户网站制作流程,华为官网怎么做?  高防服务器租用首荐平台,企业级优惠套餐快速部署  建站之星展会模版如何一键下载生成?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  建站之星上传入口如何快速找到?  如何通过WDCP绑定主域名及创建子域名站点?  建站主机无法访问?如何排查域名与服务器问题  建站VPS能否同时实现高效与安全翻墙?  如何通过智能用户系统一键生成高效建站方案?  怀化网站制作公司,怀化新生儿上户网上办理流程?  网站制作服务平台,有什么网站可以发布本地服务信息?  如何用IIS7快速搭建并优化网站站点?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  如何在IIS中新建站点并配置端口与物理路径?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何在Golang中指定模块版本_使用go.mod控制版本号  宝塔新建站点报错如何解决?  建站之星如何助力企业快速打造五合一网站?    家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何在阿里云购买域名并搭建网站?  如何在阿里云虚拟服务器快速搭建网站?  c# 在高并发场景下,委托和接口调用的性能对比  深圳网站制作平台,深圳市做网站好的公司有哪些?  Android滚轮选择时间控件使用详解  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  专业网站建设制作报价,网页设计制作要考什么证?  在线教育网站制作平台,山西立德教育官网?  网站制作话术技巧,网站推广做的好怎么话术?  广州建站公司哪家好?十大优质服务商推荐  建站之星如何取消后台验证码生成?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何快速搭建个人网站并优化SEO?  网站制作企业,网站的banner和导航栏是指什么? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。