我有一个包含text
并包装它的布局。我需要在屏幕上垂直移动这个layout
。移动后返回原来的位置
这就是我所做的。
这将在屏幕上垂直移动布局。但是现在,当我退出屏幕的手指时,我需要这种布局返回到原来的位置。
当你得到ACTION_DOWN
事件的任何代码将appriciated
我有一个包含text
并包装它的布局。我需要在屏幕上垂直移动这个layout
。移动后返回原来的位置
这就是我所做的。
这将在屏幕上垂直移动布局。但是现在,当我退出屏幕的手指时,我需要这种布局返回到原来的位置。
当你得到ACTION_DOWN
事件的任何代码将appriciated
试试这个:
case MotionEvent.ACTION_UP:
params.topMargin = initialTopMargin;
v.setLayoutParams(params);
存储初始POS。处理ACTION_UP
事件,并在那里将其重新设置为最高。如果你想让它流畅,可以启动一个新线程来更新值并等待。
使用ACTION_UP移动布局回到它原来的位置。以下是代码。尝试一下。
View valuesContainer = view.findViewById(R.id.valuesContainer);
valuesContainer.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) v.getLayoutParams();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
oldY = (int)event.getRawY();
initialTopMargin = params.topMargin;
break;
case MotionEvent.ACTION_MOVE:
newY = (int)event.getY();
params.topMargin = (int) (initialTopMargin - (oldY - newY));
v.setLayoutParams(params);
break;
case MotionEvent.ACTION_UP:
params.topMargin = initialTopMargin;
v.setLayoutParams(params);
break;
}
return true;
}
});