错误在片段中添加viewpager

时间:2018-06-15 06:51:24

标签: android android-fragments android-viewpager

我已将viewpager添加到我的片段文件中,但它显示错误

  

错误:(42,9)错误:无法访问的语句

in line layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 但我已经正确地宣布了所有的事情,我不知道为什么会出现这个错误

 package com.android.msahakyan.expandablenavigationdrawer.fragment;

    import android.content.Context;
    import android.support.annotation.NonNull;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;

import com.android.msahakyan.expandablenavigationdrawer.R;

/**
 * Created by tanis on 15-06-2018.
 */

class ViewPagerAdapter extends PagerAdapter {
    private Context context;
    private LayoutInflater layoutInflater;
    private Integer [] images = {R.drawable.bg1,R.drawable.bg2,R.drawable.index,R.drawable.bg4,R.drawable.bg5};


    public ViewPagerAdapter(Context context) {
        this.context = context;
    }


    public int getCount() {
        return images.length;
    }

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

    @NonNull
    @Override

    }public Object instantiateItem(@NonNull ViewGroup container, int position) {
        return super.instantiateItem( container, position );
        layoutInflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
        View view = layoutInflater.inflate(R.layout.custom_layout, null);
        ImageView imageView = (ImageView) view.findViewById( R.id.imageView );
        imageView.setImageResource( images[position] );
        ViewPager vp = (ViewPager) container;
        vp.addView( view, 0 );
        return view;

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        super.destroyItem( container, position, object );
        ViewPager vp = (ViewPager) container;
        View view = (View) object;
        vp.removeView( view );
    }
}

2 个答案:

答案 0 :(得分:0)

删除 return super.instantiateItem( container, position );

来自 public Object instantiateItem(@NonNull ViewGroup container, int position) 方法

示例代码

public Object instantiateItem(@NonNull ViewGroup container, int position) {
        layoutInflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
        View view = layoutInflater.inflate(R.layout.custom_layout, null);
        ImageView imageView = (ImageView) view.findViewById( R.id.imageView );
        imageView.setImageResource( images[position] );
        ViewPager vp = (ViewPager) container;
        vp.addView( view, 0 );
        return view;
}

答案 1 :(得分:0)

删除return super.instantiateItem( container, position );语句,因为它在开始时返回函数instantiateItem()。

public Object instantiateItem(@NonNull ViewGroup container, int position) {
        layoutInflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
        View view = layoutInflater.inflate(R.layout.custom_layout, null);
        ImageView imageView = (ImageView) view.findViewById( R.id.imageView );
        imageView.setImageResource( images[position] );
        ViewPager vp = (ViewPager) container;
        vp.addView( view, 0 );
        return view;
}