我正在使用导体,但是我遇到的问题是,在更改配置后,路由器的后堆栈中存在控制器,但它没有连接。
我的活动
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setSupportActionBar(toolbar);
router = Conductor.attachRouter(this, container, savedInstanceState)
bottomNavigationView.setOnNavigationItemSelectedListener(this);
if (router.getBackstack().size() == 0) {
router.pushController(RouterTransaction.with(new BaseController()).tag(BaseController.TAG).pushChangeHandler(changeHandler).popChangeHandler(changeHandler));
}
}
在onNavigationItemSelectedListener中,我只是根据选择的底部导航栏项目更改了推送新控制器或更改后退堆栈的顺序。
我的基本控制器:
protected View onCreateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) {
View view = inflater.inflate(R.layout.view_list_members, container, false);
return view;
}
编辑:
所以我做了一些额外的挖掘。更改配置后,位于路由器后置堆栈中的控制器将标志needsAttach
设置为false,即使标志attached
也为false。我试图复制导体示例,该示例工作正常,没有任何运气。