我有2个片段(片段A和片段B),它们都有折叠的工具栏布局和协调器布局中的相应回收视图。
如果我在recyclerview中向上滚动(因此CollapsingToolbarLayout已折叠),然后从片段A打开片段B(将A推到后台堆栈上)。
当我回击片段A时。即使回收者视图处于相同位置,也始终展开CollapsingToolbarLayout / AppBarLayout。
有人经历过这个吗?
答案 0 :(得分:1)
我遇到了同样的问题,所以我写下代码: -
private boolean isExpand = true;
private void setTitleNotExpand(boolean isExpand) {
if(getFragmentViewHolder() != null) {
this.isExpand = isExpand;
// AppBarLayout variable
getFragmentViewHolder().appbar.setExpanded(isExpand);
}
}
当你添加后退堆栈然后写下面的代码: -
// write below code where you want to stick your toolbar
setTitleNotExpand(false);
// write below code where you want not to stick your toolbar
setTitleNotExpand(true);
在onFragmentViewHolderCreated
上面写下代码: -
getFragmentViewHolder().appbar.setExpanded(isExpand);
答案 1 :(得分:1)
存在与此相关的问题。 根据{{3}}
将这些行添加到片段的 onViewCreated()中以解决该问题。
ViewCompat.requestApplyInsets(mCoordinatorLayout);
答案 2 :(得分:1)
这是一个古老的问题,但没有一个答案是正确的。我在他们解决问题的地方发现了另一个问题:
How to restore Collapsing Toolbar Layout State after screen orientation change
您必须为视图设置ID,以自动恢复其状态。
答案 3 :(得分:0)
另一件需要考虑的事情是,如果视图没有 id,则视图无法恢复其状态