如何在DrawerLayout中设置viewPager?

时间:2016-03-22 10:49:05

标签: android android-viewpager drawerlayout

我正在尝试将一个viewPager放在DrawerLayout的listView中。实际上我希望我的侧边菜单只包含一个viewPager!这是我的抽屉adabter:

public class RightDrawerAdapter extends ArrayAdapter<DrawerBean> {

private Context mContext;
private List<DrawerBean> mItems;

public RightDrawerAdapter(Context context, List<DrawerBean> items) {
    super(context, android.support.v7.appcompat.R.layout.abc_list_menu_item_layout);
    this.mContext = context;
    this.mItems = items;
}

@Override
public View getView(int position_item, View convertView, final ViewGroup parent) {
    View view;

    if(position_item == 0) {
        final Drawable[] promotions = {
                ContextCompat.getDrawable(mContext,R.drawable.promotion),ContextCompat.getDrawable(mContext, R.drawable.promotion)
        };


        Holder holder = null;
        view = (View) LayoutInflater.from(mContext).inflate(R.layout.right_drawer_header, null);
        holder = new Holder();
        holder.viewPager_promotions = (ViewPager) view.findViewById(R.id.view_pager_promotions);

        ImageAdapter adapter = new ImageAdapter(mContext,promotions);
        holder.viewPager_promotions.setAdapter(adapter);

        view.setTag(holder);
        view.setId(position_item+1);

    }else{
        view = convertView;
    }

    return view;
}

    @Override
    public int getCount() {
        return mItems.size() + 1;
    }
}
class Holder {
    ViewPager viewPager_promotions;
}

但结果是DrawerLayout打开了,它全都是空的!它里面没有任何东西。这是我的ImageAdapter:

public class ImageAdapter extends PagerAdapter {
Context context;
private Drawable[] GalImages ;
public ImageAdapter(Context context , Drawable[] imgs){
    this.context=context;
    this.GalImages=imgs;
}
@Override
public int getCount() {
    return GalImages.length;
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return view == ((ImageView) object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    ImageView imageView = new ImageView(context);
    int padding = 0;
    imageView.setPadding(padding, padding, padding, padding);
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);

    imageView.setImageDrawable(GalImages[position]);
    ((ViewPager) container).addView(imageView, 0);
    return imageView;
}

@Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        ((ViewPager) container).removeView((ImageView) object);
    }
}

请帮忙吗?

0 个答案:

没有答案