FragmentStatePagerAdapter(简称FSPA)具有预加载机制.
我们假设FSPA中的A,B和C片段
当用户选择A片段时,B片段将被预加载,B片段中的某些内容不希望被执行,因为B不是当前的片段。
云如何确定片段是否是当前选择的片段用户?
代码片段无法解释我想做什么,所以我删除了它
请将我的问题更新如下:
假设
问题:查看器中的预加载片段A将导致用户看不到电子票证的存在,但电子票证启动事务
想要做的事情:片段A的视图是电子票据,所以事务只能在片段A中启动,在其他片段中停止。
附注:“开始”和“停止”电子票据事务属于片段类.
发布于 2016-08-31 09:02:34
您可以将一个onPageChangeListener添加到您的查看器中,在onPageSelected(int position)中,您可以获得当前的片段。
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Fragment currentFragment=new MyViewPagerAdapter().getItem(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});“用户选择”是指在屏幕上点击或可见?
发布于 2016-08-31 09:07:20
您可以使用setUserVisibleHint方法。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
if(isVisibleToUser){
... your code
}
}https://stackoverflow.com/questions/39244059
复制相似问题