显示问题:
1、设置ScrollView的fillViewPort为true
2、设置ViewPager的layout_height为一个固定高度,比如:100dip
冲突问题:
不过ViewPager显示出来以后,还有另外一个冲突:ViewPager左右不能滑动了!是的,因为这个事件其实已经被外层的ScrollView截获!
重写ScrollView控件!
第一种解决方案:
重写ScrollView,然后嵌套使用无任何问题,如何重写,具体看以下地址
备注:ListView嵌套无法滑动也可以解决,listview布局推荐线性布局,相对布局有小问题,如何解决请google
第二种方案:viewpager结合下拉刷新组件,重写Viewpager组件,如何重写参考以下代码。
<span style="font-size:18px;">package com.bavariama.base.widget;
import java.net.ContentHandler;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.MotionEvent;
/**
* 此ViewPager解决与父容器ScrollView冲突的问题,无法完美解决.有卡顿
* 此自定义组件和下拉刷新scrollview配合暂时小完美,有待改善
* @author bavariama
*
*/
public class InsideViewPager extends ViewPager {
float curX = 0f;
float downX = 0f;
OnSingleTouchListener onSingleTouchListener;
public InsideViewPager(Context context) {
// TODO Auto-generated constructor stub
super(context);
}
public InsideViewPager(Context context, AttributeSet attrs) {
// TODO Auto-generated constructor stub
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
curX = ev.getX();
// TODO Auto-generated method stub
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
downX = curX;
}
int curIndex = getCurrentItem();
if (curIndex == 0) {
if (downX <= curX) {
getParent().requestDisallowInterceptTouchEvent(false);
} else {
getParent().requestDisallowInterceptTouchEvent(true);
}
} else if (curIndex == getAdapter().getCount() - 1) {
if (downX >= curX) {
getParent().requestDisallowInterceptTouchEvent(false);
} else {
getParent().requestDisallowInterceptTouchEvent(true);
}
} else {
getParent().requestDisallowInterceptTouchEvent(true);
}
return super.onTouchEvent(ev);
}
public void onSingleTouch() {
if (onSingleTouchListener != null) {
onSingleTouchListener.onSingleTouch();
}
}
public interface OnSingleTouchListener {
public void onSingleTouch();
}
public void setOnSingleTouchListner(
OnSingleTouchListener onSingleTouchListener) {
this.onSingleTouchListener = onSingleTouchListener;
}
}</span>
转载地址:http://blog.csdn.net/mcy478643968/article/details/19609407