Java 具有数据绑定和实例化项的Android ViewPager/PagerAdapter不执行活动视图
我正在MVVM框架中使用Android数据绑定。我有一个带有相应PagerAdapter的ViewPager设置。某些页面可能包含视频。我遇到的问题是PagerAdapter中的InstanceItem方法总是执行PagerAdapter中的下一个视图,而不是当前视图。例如,假设第1页没有视频,但第2页有。当用户查看第1页时,第2页中的视频开始播放。以下是实例化项方法: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
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的时间有更多的控制。例如,我可能想延迟播放,而且当显示上面的对话框视图时,它仍然会自动触发。