小编Raj*_*ame的帖子

使用 ViewPager2 和 FragmentStateAdapter 的片段生命周期行为

fragments我使用ViewPager2和显示 5 FragmentStateAdapter。每个fragment都有ExoPlayer实例。我正在维护ViewPager2.setOffscreenPageLimit(1),并且加载效果良好fragments。但是,当我向下滚动到ViewPager2,pos4时pos2,pos1应该调用 onStop(), onDestroyView(), onDestroy()。但这并没有发生。

除非我按 ,否则这些方法都不会执行onBackPress()。我在FragmentStateAdapter.

我想执行exoPlayer.release()以onDestroyView()释放应用程序的内存。

这是代码

活动

List<Post> postsList = response.getPosts();
ViewPagerAdapter adapter = new ViewPagerAdapter(this, postsList);
binding.pager.setOrientation(ViewPager2.ORIENTATION_VERTICAL);
binding.pager.setOffscreenPageLimit(1);
binding.pager.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

ViewPager适配器

public class ViewPagerAdapter extends FragmentStateAdapter {

    private List<Post> postList;

    public ViewPagerAdapter(@NonNull FragmentActivity fragmentActivity, List<Post> postList) {
        super(fragmentActivity);
        this.postList = postList;
    }


    @NonNull
    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

android fragment android-viewpager exoplayer android-viewpager2

5
推荐指数
1
解决办法
2831
查看次数