记录一下今天遇到的问题:
需求是 从A页面跳转到B页面,B页面的fragment嵌套了viewpaager ,A需要跳转到viewpager的指定页面
因为跳转和改变当前选中页是两个业务逻辑,所以不可以用Intent传值来改变
关键点:
1.观察者模式
2.setCurrentItem(position) posion是从0开始的 如果position大于page.size() 默认为最后一页
3.如果B页面未初始化,通知B页面改变需要在一个新的线程里面处理
先贴代码:
public class FragmentSelectObserver {
public static FragmentSelectObserver instance;
private List<SelectChangeListener> listeners ;
private FragmentSelectObserver() {
listeners = new ArrayList<>();
}
public static FragmentSelectObserver getInstance() {
if (instance == null){
instance = new FragmentSelectObserver();
}
return instance;
}
public void addSelectChangeListener(SelectChangeListener listener){
if(listener!=null){
listeners.add(listen