我有一个textView或小图标,我只想垂直拖动它。
我尝试了什么: 创建一个自己的ShadowBuilder,但让他看不见。因此,其他视图会通过OnDragListener调用,但ShadowView不可见。
相反,我会显示一个像这里移动的自己的视图: How to make the TextView drag in LinearLayout smooth, in android?只有在垂直方向上有所不同。问题是,如果激活拖动,则仅调用onTouchListener两次。所以不能动起来。
我认为这个解决方案对我不起作用。 Drag an image only horizontally or vertically in android?
也许有什么想法?谢谢你的阅读。
答案 0 :(得分:1)
尝试我的解决方案here,但只改变顶部和底部边距。
答案 1 :(得分:1)
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;
}
});