Android编程:拖动按钮

时间:2014-06-14 22:21:48

标签: 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
        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就会停止工作。

注意:这是自定义列表行单元格内的按钮。我正在使用线性布局。

0 个答案:

没有答案