Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有数据绑定和实例化项的Android ViewPager/PagerAdapter不执行活动视图_Java_Android - Fatal编程技术网

Java 具有数据绑定和实例化项的Android ViewPager/PagerAdapter不执行活动视图

Java 具有数据绑定和实例化项的Android ViewPager/PagerAdapter不执行活动视图,java,android,Java,Android,我正在MVVM框架中使用Android数据绑定。我有一个带有相应PagerAdapter的ViewPager设置。某些页面可能包含视频。我遇到的问题是PagerAdapter中的InstanceItem方法总是执行PagerAdapter中的下一个视图,而不是当前视图。例如,假设第1页没有视频,但第2页有。当用户查看第1页时,第2页中的视频开始播放。以下是实例化项方法: public Object instantiateItem(ViewGroup container, int pos

我正在MVVM框架中使用Android数据绑定。我有一个带有相应PagerAdapter的ViewPager设置。某些页面可能包含视频。我遇到的问题是PagerAdapter中的InstanceItem方法总是执行PagerAdapter中的下一个视图,而不是当前视图。例如,假设第1页没有视频,但第2页有。当用户查看第1页时,第2页中的视频开始播放。以下是实例化项方法:

     public Object instantiateItem(ViewGroup container, int position) {
    
        LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(Service.LAYOUT_INFLATER_SERVICE);
    

        ViewDataBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.main_layout, null, false);
    
        Post post = posts.get(position);
        myViewModel = new PostModel(post);
    
        binding.setVariable(BR.model, myViewModel);
  
        container.addView(binding.getRoot());
    

        return binding.getRoot();
    
    }

如何使实例化项执行当前视图而不是下一个视图?这个问题与setOffscreenPageLimit有关吗?

你不能,因为它是
ViewPager
的主要思想-它会预加载接下来的N个页面,以使滑动顺畅。实际上,您也可以设置它,以便查看下一个视图的一部分

我认为您应该使用,并在需要时启动/停止播放您的视频


顺便说一句,一些建议-你可以用它来避免编写样板代码

您使用过绑定集合适配器库吗?我正在考虑实施。与我遇到的问题相关的是我用来播放视频的TextureView绑定适配器。据我所知,当它感觉到TextureView进入活动视图时,它会播放。但是,我需要对触发TextureView的时间有更多的控制。例如,我可能想延迟播放,而且当显示上面的对话框视图时,它仍然会自动触发。