解决listview和scrollview冲突 ,scrollview和scrollview冲突
原理就是监听子控件的ontouch 然后拦截父控件的ontouch


package com.example.rollconflict;


import java.util.ArrayList;

import java.util.List;


import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.ScrollView;

import android.widget.TextView;


/**

* 解决scrollview和Listview滚动冲突

* @author 李海艺

* @date 2013.11.09

*

*/

public class MainActivity extends Activity

{


private ScrollView scroll;

private ListView lv;

private List<Integer> list;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

lv.setOnTouchListener(new OnTouchListener()

{

@Override

public boolean onTouch(View v, MotionEvent event)

{

//拦截父控件的touch事件

v.getParent().requestDisallowInterceptTouchEvent(true);

return false;

}

});

}

/**

* 初始化

*/

private void init()

{

list = new ArrayList();

scroll = (ScrollView) findViewById(R.id.scrollView1);

lv = (ListView) findViewById(R.id.listView1);

getData();

lv.setAdapter(new MyAdapter());

}

/**

* 获取list数据

*/

private void getData()

{

for(int i=0;i<30;i++)

{

list.add(i);

}

}

/**

* 设置适配器

*/

class MyAdapter extends BaseAdapter

{


@Override

public int getCount()

{

return list.size();

}


@Override

public Object getItem(int position)

{

return null;

}


@Override

public long getItemId(int position)

{

return 0;

}


@Override

public View getView(int position, View convertView, ViewGroup parent)

{

TextView text=new TextView(MainActivity.this);

text.setText(list.get(position)+"");

return text;

}

}



}


layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >


<ScrollView

android:id="@+id/scrollView1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true" >


<LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >


<ImageView

android:id="@+id/p_w_picpathView1"

android:layout_width="wrap_content"

android:layout_height="150dp"

android:src="@drawable/ic_launcher" />

<ImageView

android:id="@+id/p_w_picpathView1"

android:layout_width="wrap_content"

android:layout_height="150dp"

android:src="@drawable/ic_launcher" />

<ImageView

android:id="@+id/p_w_picpathView1"

android:layout_width="wrap_content"

android:layout_height="150dp"

android:src="@drawable/ic_launcher" />


<ListView

android:id="@+id/listView1"

android:layout_width="match_parent"

android:layout_height="70dp" >

</ListView>



<ImageView

android:id="@+id/p_w_picpathView1"

android:layout_width="wrap_content"

android:layout_height="150dp"

android:src="@drawable/ic_launcher" />

<ImageView

android:id="@+id/p_w_picpathView1"

android:layout_width="wrap_content"

android:layout_height="150dp"

android:src="@drawable/ic_launcher" />

<ImageView

android:id="@+id/p_w_picpathView1"

android:layout_width="wrap_content"

android:layout_height="150dp"

android:src="@drawable/ic_launcher" />

<ImageView

android:id="@+id/p_w_picpathView1"

android:layout_width="wrap_content"

android:layout_height="150dp"

android:src="@drawable/ic_launcher" />



</LinearLayout>

</ScrollView>


</RelativeLayout>