scrollview中嵌套SwipeListView如何在侧滑删除的时候禁止listview的上下滑动

2015-11-25 20:48
scrollview中嵌套listview ,listview的长度超过屏幕的话就找不到scrollview的焦点了,listview是继承SwipeMenuListView可以左右滑动。 已经在listview中设置
/**
	 * 设置不滚动
	 */
	@Override    
	public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,    
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);    
	} 

listview是还是可以上下滑动。求大神帮帮忙。

回复讨论(解决方案)

scrollview中嵌套listview ,listview的长度超过屏幕的话就找不到scrollview的焦点了,listview是继承SwipeMenuListView可以左右滑动。 已经在listview中设置
/**
	 * 设置不滚动
	 */
	@Override    
	public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,    
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);    
	} 

listview是还是可以上下滑动。求大神帮帮忙。
	public void setListViewHeight(ListView listView) {   
        // 获取ListView对应的Adapter   
        ListAdapter listAdapter = listView.getAdapter();   
       
        if (listAdapter == null) {   
            return;   
        }   
        int totalHeight = 0;   
        for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目   
            View listItem = listAdapter.getView(i, null, listView);   
            listItem.measure(0, 0); // 计算子项View 的宽高   
            totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度   
        }   
        ViewGroup.LayoutParams params = listView.getLayoutParams();   
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));   
        listView.setLayoutParams(params);   
    }  

去掉listview的纵向滑动,直接全展示出来啊?双滑动肯定冲突啊
或者可以用headview啊,不知道符合你的要求不
或者可以用headview啊,不知道符合你的要求不

我是用的SwipeListView做的,就想要的左右滑动。但是嵌套在scrollview中上下滑动冲突,我想禁止listview的上下滑动,只有左右滑动。
那你还不如自己在代码中动态添加linearlayout,不使用listview,这样更加简单,方便

或者可以用headview啊,不知道符合你的要求不

我是用的SwipeListView做的,就想要的左右滑动。但是嵌套在scrollview中上下滑动冲突,我想禁止listview的上下滑动,只有左右滑动。



在自定义的listview类中重写ontouchevent方法
@Override
public boolean onTouchEvent(MotionEvent ev) {
requestDisallowInterceptTouchEvent(true);
return super.onTouchEvent(ev);
}
这是截取父控件获取ontouch  可以解决滑动冲突