在ScrollView里面做了个Button,能够控制滑动,但是现在是屏幕滑动了,而控件没有滑动,控件是用setOnTouchListener(new TouchListner(){onTouch(View v,MotionEvent event){}})来实现的,按键按下和弹起有反应,就是拖动没反应
解决方案 »
- 菜鸟请教
- 求助,子线程中处理GPS,问题较多,多放点分
- Html中的链接点击事件
- 怎样在一个广播中onReceive方法中调用某一个Service中的方法,service已经后台运行
- 我写了一个触摸屏幕出现水波纹效果 如何将这个效果应用到所有的应用程序中呢
- adroid需要修改重力感应器
- 关于 Handler.removeCallbacks ,求真相
- 关于Android组件GridView的问题
- Android 4.2 Wireless display与PC通信
- 遇到瓶颈了,各位大神帮帮忙
- android SQLite 查询数据时总查不到,以前是可以的,求解啊!
- Android项目运行不起来也不报错,什么原因
setClickable(true)
/** 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)设在哪里都不行
......
} /**
* 在Activity中添加ScrollView实现滚动activity的效果后,activity的滑动效果却无法生效了
* 原因是因为activity没有处理滑动效果,重写以下方法即可解决。
*/
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
detector.onTouchEvent(ev);
return super.dispatchTouchEvent(ev);
}
......
}