安卓事件分发

来源:互联网 发布:nasa官网淘宝 编辑:程序博客网 时间:2024/06/05 14:28

写一个ListView结合ScrollView的事件分发。

public class EventActivity02 extends AppCompatActivity {    private ListView lv;    private ScrollView sv;    private List<String> mDatas;    private ArrayAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_event02);        lv = (ListView) findViewById(R.id.lv);        sv = (ScrollView) findViewById(R.id.sv);//给ListView添加一点数据        mDatas = new ArrayList<>();        for (int i = 0; i < 30; i++) {            mDatas.add("第"+i+"条数据");        }        adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,mDatas);        lv.setAdapter(adapter);        lv.setOnTouchListener(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                if (event.getAction()==MotionEvent.ACTION_UP){                    sv.requestDisallowInterceptTouchEvent(false);                }else{//                 lv.getParent().getParent().requestDisallowInterceptTouchEvent(true);//                  请求父控件不要拦截触摸事件,上下两行代码是一个意思。                    sv.requestDisallowInterceptTouchEvent(true);                }                return false;            }        });    }}