由于自己的项目忘记截图了,我弄一个网易的类似的图
实现的方式是一个viewpager,然后下面是一个listview,把这个viewpager当做listview的headview.
难点主要是要重写viewpager,不要让他和listview的滑动起冲突。重写它的那个viewpager,可以避免这个问题
首先是重写viewpager.
<span style="font-family:KaiTi_GB2312;font-size:18px;">public class MyViewPager extends ViewPager {
public MyViewPager(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
getParent().requestDisallowInterceptTouchEvent(true);
return super.dispatchTouchEvent(ev);
}
}</span>
再一个就是adapter
<span style="font-family:KaiTi_GB2312;font-size:18px;">public class MyViewPagerAdapter extends PagerAdapter{
private List<ImageView> imageViews;
private int[] imageResId;
public MyViewPagerAdapter(int[] imageResId,List<ImageView> imageViews){
this.imageResId = imageResId;
this.imageViews = imageViews;
}
@Override
public int getCount() {
return imageResId.length;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(imageViews.get(arg1));
return imageViews.get(arg1);
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View arg0) {
}
@Override
public void finishUpdate(View arg0) {
}
}</span>
最后那里由于自己的那个代码还又别的东西就不贴图了。基本上就是一个添加headview的方法 如果有错误 还请多多指教一下。。 希望大神指教啊。。