解决滑动控件与ScrollView冲突

来源:互联网 发布:传感器 java实例 编辑:程序博客网 时间:2024/05/08 14:24

滑动控件与ScrollView冲突就是因为ScrollView截断点击事件

例如:我的自定义横向滑动控件与ScrollView冲突,应用View的事件分发机制可以,我的解决如下
lvHorizon.setOnTouchListener(new View.OnTouchListener() {    @Override    public boolean onTouch(View v, MotionEvent event) {        if (event.getAction() == MotionEvent.ACTION_UP) {            //允许ScrollView截断点击事件,ScrollView可滑动            scrollView.requestDisallowInterceptTouchEvent(false);        } else {            //不允许ScrollView截断点击事件,点击事件由子View处理            scrollView.requestDisallowInterceptTouchEvent(true);        }        return false;    }});
 
你只需将lvHorizion,scrollView替换成你的滑动控件即可。

自定义滑动控件,请移步http://download.csdn.net/detail/m18860232520/9705252
如同ListView一样使用。大笑

高度控制可以用 以下方法解决
public static void setListViewHeight(ListView listView) {    ListAdapter listAdapter = listView.getAdapter();    if (listAdapter == null) {        // pre-condition        return;    }    int totalHeight = 0;    for (int i = 0; i < listAdapter.getCount(); i++) {        View listItem = listAdapter.getView(i, null, listView);        listItem.measure(0, 0);        totalHeight += listItem.getMeasuredHeight();    }    ViewGroup.LayoutParams params = listView.getLayoutParams();    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));    listView.setLayoutParams(params);}

0 0
原创粉丝点击