android 妖孽listview

来源:互联网 发布:dev c mac版 编辑:程序博客网 时间:2024/04/20 20:43

listview获得焦点的能力实在是太强了。

今天为了制作一个能够自由缩放的窗口powerfullayout(网络上的一个控件),但是里面有一个listview,只要点到listview事件就会被它抢去。无论是在powerfullayout的onInterceptTouchEvent写,还是在listview 的ontouchlistener里面写,都会产生一些逻辑上的矛盾

比如,在listview down事件上拦截,而up的时候再恢复为不拦截参数,这就是不可能办到的事情,因为在down的时候已经被拦截了,后面的事件就不可能再捕捉到。

于是,我就想着能不能在listview上面加一个framelayout,如此让其不取得焦点

不过,还是不行,加了一层竟然还是能取得焦点

之后我用了这两个listView.setFocusable(false);
listView.setFocusableInTouchMode(false);

不知道这两个函数是做什么用的,不过还是不行

最后listView.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// TODO Auto-generated method stub
// powerfulLayout.requestDisallowInterceptTouchEvent(false);
powerfulLayout.onTouchEvent(arg1);
return false;
}
});

我把被listview拦截到的事件,又丢回给了外面的powerfullayout


原创粉丝点击