Java Android编程:拖动按钮
我使用onTouch侦听器来实现一个可拖动的按钮。这是我的密码:Java Android编程:拖动按钮,java,android,button,slide,drag,Java,Android,Button,Slide,Drag,我使用onTouch侦听器来实现一个可拖动的按钮。这是我的密码: final Button b = (Button) rowView.findViewById(R.id.button1); b.setFocusable(false); b.setOnTouchListener(new OnTouchListener() { int k = 0; int prevX; int x = 0; @Override
final Button b = (Button) rowView.findViewById(R.id.button1);
b.setFocusable(false);
b.setOnTouchListener(new OnTouchListener() {
int k = 0;
int prevX;
int x = 0;
@Override
public boolean onTouch(final View v, final MotionEvent e) {
final LinearLayout.LayoutParams par = (LinearLayout.LayoutParams) v.getLayoutParams();
switch (e.getAction()) {
case (MotionEvent.ACTION_MOVE):
if (k == 0) {
prevX = (int) e.getRawX();
}
x += (int) e.getRawX() - prevX;
prevX = (int) e.getRawX();
par.leftMargin = x;
Log.d("jy", "x: " + x);
k++;
v.setLayoutParams(par);
return true;
case (MotionEvent.ACTION_UP):
b.setText("hi");
par.bottomMargin = 0;
par.leftMargin = 0;
k = 0;
x = 0;
v.setLayoutParams(par);
return true;
}
return false;
}
});
不过我只能拖动按钮一点点。一旦我拖过按钮的原始位置,onTouchListener就会停止工作
注意:这是自定义列表行单元格内的按钮。我使用的是线性布局。当您退出控件边界时,它可能会停止接收触摸事件。为什么不改用
OnDragListener
呢?我尝试过使用OnDragListener,但它甚至没有注册初始阻力。您是否遵循了中的所有步骤?