控件拖动后,某些事件引起的布局重置或位置还原问题
来源:互联网 发布:北京精雕如何编程 编辑:程序博客网 时间:2024/06/14 12:09
自定义了一个imageview控件,可以随意拖动和缩放。
遇到了一个棘手的问题,就是每当拖动完控件以后,执行某些操作的时候(比如说触发虚拟键盘),该控件的位置就会还原到初始位置。
经过尝试,问题已经解决,
解决方法是:捕捉ACTION_UP动作,当发现这个动作以后执行方法onTouchUp()
附上该方法代码如下
<span style="font-size:18px;">void onTouchUp(MotionEvent event) {RelativeLayout.LayoutParams param=new RelativeLayout.LayoutParams(Width,Height);//Width、Height是操作之后的图片宽度和高度param.leftMargin = left;//操作之后控件左上角的横坐标param.topMargin = right;//操作之后控件左上角的纵坐标img.setLayoutParams(param);}</span>
至于控件的Width、Height、Left、Right等信息,最好是直接从自定控件中建一个方法来获取,比如获取图片宽度可以在自定义控件中添加如下代码:
/** 获取图片宽度 **/public int getimg_W() {return this.getWidth();}在调用程序中使用param.height=控件名.getimg_W;
猜测原因:因为拖动的控件是一个自定义控件,在控件被拖动时,其实控件在布局中的位置并没有真正发生变化。所以当有事件触发布局发生变化时,该控件的位置会被还原。这里使用的方法是每当拖动操作完成时会有触发一个ACTION_UP动作,当遇到这个动作时增加一段代码手动将控件最后的位置赋给它。
0 0
- 控件拖动后,某些事件引起的布局重置或位置还原问题
- 添加、删除控件后引起的问题
- RichTextBox拖动滚动条后定位里面的控件位置
- Android控件拖动后控件回到原点的问题
- 由UITableView reloadData后引起的界面布局问题分析
- 常见的布局或控件问题
- android 解决 addView()操作之后,之前的控件位置重置的问题
- 用到afinal注解的项目代码混淆后某些控件view点击事件无效
- 页面提交后提示“连接被重置”或“载入页面时到服务器的连接被重置”的问题分析
- Android中布局文件拖动后或者修改后界面无法启动的问题
- onchanged事件引起的问题
- 布局中控件的位置
- maven update引起的问题,java编译版本重置
- EditText光标位置的控制或选中某些文本
- 关于点击事件提交代码到后台发现控件被重置的问题
- Eclipse如何还原和重置窗口布局
- sql2014 还原备份后标识种子重置
- ListView拖动后,文字、图片布局错乱问题
- OpenGL: 渲染填充凹凸多边形
- 初识云计算day005
- Ormlite 介绍 一
- 有关input标签的详解
- 孙鑫VC++深入详解(3):简单绘图
- 控件拖动后,某些事件引起的布局重置或位置还原问题
- 用C++实现七种排序算法,可选择排序方法,简单易懂。
- javascript面向对象 属性和方法
- git介绍
- 更高效的C++_More Effective CPP手记一之基础议题
- linux下的通配符与正则表达式
- Python中的input和raw_input
- GVim常用配置
- PAT (Advanced) 1061. Dating (20)