实现了控件的拖动,但定时更新TextView内容时,复位了?

中才德创 2015-06-08 05:59:03
确实拖动成功了,原以为OK了。就做个时间显示,在TextView里。却发现,拖动后的控件,又回原位了。

一时还没有思路,故在此地请教下大家。
/**
* 监听
*/
private OnTouchListener onTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.flConfLocalVideo:
switch (event.getAction()) {
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;
int top = v.getTop() + dy;
int left = v.getLeft() + dx;
localVideoWidth = flConfLocalVideo.getWidth();
localVideoHeight = flConfLocalVideo.getHeight();
if (top <= 0)
{
top = 0;
}
if (top >= screenHeight - localVideoHeight)
{
top = screenHeight - localVideoHeight;
}
if (left <= 0)
{
left = 0;
}
if (left >= screenWidth - localVideoWidth)
{
left = screenWidth - localVideoWidth;
}
v.layout(left, top, left+localVideoWidth, top+localVideoHeight);
lastX = (int)event.getRawX();
lastY = (int)event.getRawY();
break;

case MotionEvent.ACTION_UP:
break;
}
break;

default:
break;
}
return false;
}
};
...全文
98 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
开发者_android 2015-06-10
  • 打赏
  • 举报
回复
引用 1 楼 HawkOfWinter 的回复:
问题刚解决了。 网上下了个Demo,测试了都是正常的(包括定时更新文本内容),可当我把它的layout_width的属性修改了下,也出现了复位的情况! 原来,<TextView android:layout_width="wrap_content",它的内容发生变更时,重绘了布局,所以所有的控件又重排了一遍。 而"match_parent" "fill_parent" 时,却正常! 总而言之,这或许是android的一个bug吧。但愿后续版本能改善。
这个发现,很有意义!
中才德创 2015-06-09
  • 打赏
  • 举报
回复
问题刚解决了。 网上下了个Demo,测试了都是正常的(包括定时更新文本内容),可当我把它的layout_width的属性修改了下,也出现了复位的情况! 原来,<TextView android:layout_width="wrap_content",它的内容发生变更时,重绘了布局,所以所有的控件又重排了一遍。 而"match_parent" "fill_parent" 时,却正常! 总而言之,这或许是android的一个bug吧。但愿后续版本能改善。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧