今天调试程序,发现之前忽略一个非常重要的问题,在Android触摸监听机制里面,当代码点击触发返回值都是false的时候,系统应该默认不再传递当前的触摸事件。具体代码如下:
package com.mao.xiaodian.activity;
import com.mao.xiaodian.R;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
/**
*
* @author Ming
*
*/
public class ActivityGuide extends ActionBarActivity {
private LinearLayout mLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guide);
mLayout=(LinearLayout) findViewById(R.id.main);
mLayout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getActionMasked()){
case MotionEvent.ACTION_DOWN:
System.out.println("11111111111111");
break;
case MotionEvent.ACTION_MOVE:
System.out.println("222222");
break;
case MotionEvent.ACTION_UP:
System.out.println("33333333");
break;
}
return true;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
倘若将监听中返回结果改成flase 由于在代码中没有对监听事件进行处理返回,造成系统默认不再传递Action_Down之后的点击触摸事件。即系统默认当前View无监听方法,自然无法触发以后的点击事件。~特此笔记。免得日后遗漏。