带有viewpager和毕加索的应用不断停止

问题描述 投票:1回答:1

我正在通过教程制作来自网址的图像轮播。当我打开应用程序时,它说“应用程序停止运行”。使用picasso,添加了依赖性。在AndroidMainfest中启用了Internet许可。在android studio中没有错误。

activity_main

<android.viewpager.widget.ViewPager
     ...
     android:id="@+id/view_pager"
</android.viewpager.widget.ViewPager>

ViewPagerAdapter

public class ViewPagerAdapter extends PagerAdapter {

    private Context context;
    private String[] imageUrls;

    ViewPagerAdapter(Context context, String[] imageUrls) {
        this.context = context;
        this.imageUrls = imageUrls;
    }

    @Override
    public int getCount() {
        return imageUrls.length;
    }

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

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        Picasso.get()
                .load(imageUrls[position])
                .fit()
                .centerCrop()
                .into(imageView);
        container.addView(imageView);

        return imageView;
    }

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

MainActivity

public class MainActivity extends AppCompatActivity {
    private String[] imageUrls = new String[]{
            ...
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewPager viewPager = findViewById(R.id.view_pager);
        ViewPagerAdapter adapter = new ViewPagerAdapter(this, imageUrls);
        viewPager.setAdapter(adapter);
    }
}
java android
1个回答
0
投票

问题是,我不得不将ViewPager放在ConstraintLayout内

© www.soinside.com 2019 - 2024. All rights reserved.