Java Android-仅垂直拖放
我有一个文本视图或小图标,我只想垂直拖动它 我尝试的是: 创建自己的阴影生成器,但使其不可见。因此,通过OnDragListener调用其他视图,但阴影视图不可见 而是显示自己的视图,移动方式如下: 和之不同,只是在垂直方向。问题是,如果拖动被激活,onTouchListener只被调用两次。因此无法移动 我认为这种解决办法对我不起作用。Java Android-仅垂直拖放,java,android,drag,Java,Android,Drag,我有一个文本视图或小图标,我只想垂直拖动它 我尝试的是: 创建自己的阴影生成器,但使其不可见。因此,通过OnDragListener调用其他视图,但阴影视图不可见 而是显示自己的视图,移动方式如下: 和之不同,只是在垂直方向。问题是,如果拖动被激活,onTouchListener只被调用两次。因此无法移动 我认为这种解决办法对我不起作用。 也许有什么想法?感谢阅读。尝试我的解决方案,但只更改上下页边距。使用您的解决方案,滚动到所有区域。我只想要垂直的direction@RajeshNasit所
也许有什么想法?感谢阅读。尝试我的解决方案,但只更改上下页边距。使用您的解决方案,滚动到所有区域。我只想要垂直的direction@RajeshNasit所以只更改垂直边距(顶部和底部),避免更改水平边距(leftMargin和rightMargin),感谢我看到了下面的代码。真的是你救了我的命:)@RajeshNasit这也是我在答案中写的。
findViewById(R.id.btn_submit).setOnTouchListener(new View.OnTouchListener()
{
int prevX,prevY;
@Override
public boolean onTouch(final View v,final MotionEvent event)
{
final LinearLayout.LayoutParams par=(LinearLayout.LayoutParams)v.getLayoutParams();
switch(event.getAction())
{
case MotionEvent.ACTION_MOVE:
{
par.topMargin+=(int)event.getRawY()-prevY;
prevY=(int)event.getRawY();
prevX=(int)event.getRawX();
v.setLayoutParams(par);
return true;
}
case MotionEvent.ACTION_UP:
{
par.topMargin+=(int)event.getRawY()-prevY;
v.setLayoutParams(par);
return true;
}
case MotionEvent.ACTION_DOWN:
{
prevX=(int)event.getRawX();
prevY=(int)event.getRawY();
par.bottomMargin=-2*v.getHeight();
v.setLayoutParams(par);
return true;
}
}
return false;
}
});