我正在使用https://github.com/commonsguy/cwac-pager
还有另一种ArrayPagerAdapter构造函数,它将RetentionStrategy作为参数。这最终将允许ArrayPagerAdapter像FragmentPagerAdapter(当前)或 FragmentStatePagerAdapter(未来)一样工作。
那么我该如何实现RetentionStrategy?没有太多关于此的信息。它有两种方法:
public interface RetentionStrategy {
void attach(Fragment fragment, FragmentTransaction currTransaction);
void detach(Fragment fragment, FragmentTransaction currTransaction);
}
我在ArrayPagerAdapter中有很多页面,所以当它像FragmentPagerAdapter一样工作时它对内存不利。
答案 0 :(得分:1)
那么我该如何实现RetentionStrategy?
嗯,你可以在代码中看到一个具体的RetentionStrategy
,名为KEEP
,例如this block from v0.2.3 of the library。
理论上,您可以创建采用不同策略的RetentionStrategy
的其他具体实现。然后,您会将RetentionStrategy
的实例传递给相应的ArrayPagerAdapter
构造函数。
在实践中,我怀疑RetentionStrategy
本身需要扩展,以使您能够按照FragmentStatePagerAdapter
的方式保持状态。
我真诚地希望我能够回到这些图书馆,并在2015年继续推进这些图书馆。对于尚未将此功能添加到图书馆,我深表歉意。