在ScrollView里面做了个Button,能够控制滑动,但是现在是屏幕滑动了,而控件没有滑动,控件是用setOnTouchListener(new TouchListner(){onTouch(View v,MotionEvent event){}})来实现的,按键按下和弹起有反应,就是拖动没反应

解决方案 »

  1.   

    就是怎么在ScrollView里面添加一个能够拖动的控件,因为拖动控件时,焦点到了ScrollView了,变成滑动屏幕
      

  2.   

    给里面的控件设置,setFocusable(true)
    setClickable(true)
      

  3.   

    设这个没用啊,我mainfest描述文件,onCreate时,监听时,都早设置试过了,没用,还把scrollview设置为false等
      

  4.   

    public class Touch extends Activity {
        /** Called when the activity is first created. */
    Button btn;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.main);
            btn = (Button) findViewById(R.id.btn_hello);
            btn.setOnTouchListener(new OnTouchListener() {
         int[] temp = new int[] { 0, 0 };
         public boolean onTouch(View v, MotionEvent event) {
         int eventaction = event.getAction();
         Log.i("&&&", "onTouchEvent:" + eventaction);
         int x = (int) event.getRawX();
         int y = (int) event.getRawY();
         switch (eventaction) {
        
         case MotionEvent.ACTION_DOWN: // touch down so check if the
         temp[0] = (int) event.getX();
         temp[1] = y - v.getTop();
         break;
        
         case MotionEvent.ACTION_MOVE: // touch drag with the ball
         v.layout(x - temp[0], y - temp[1], x + v.getWidth() - temp[0], y - temp[1] + v.getHeight());
         v.postInvalidate();
         break;
        
         case MotionEvent.ACTION_UP:
         break;
         }
         return false;
         }
         });
            
        }
    }
    这是源码,manifest不加scrollview可以自由滑动,加了不能自由滑动,不管setFocusable(true)
    setClickable(true)设在哪里都不行
      

  5.   

    自己解决了,重写了下ScrollView!!
      

  6.   

    楼上的哥们,能不能具体说说怎么重写ScrollView,我也遇到了相同的问题,谢谢你了
      

  7.   

    还有一种方法。不需要去自定义ScrollView类public class TestActivity extends Activity implements OnGestureListener {     public void onCreate(Bundle savedInstanceState) { 
            ...... 
        }     /** 
         * 在Activity中添加ScrollView实现滚动activity的效果后,activity的滑动效果却无法生效了 
         * 原因是因为activity没有处理滑动效果,重写以下方法即可解决。 
         */ 
        @Override  
        public boolean dispatchTouchEvent(MotionEvent ev) {  
            detector.onTouchEvent(ev);  
            return super.dispatchTouchEvent(ev);  
        } 
        ...... 
    }