问题描述
我有以下问题:
主要活动:
<android.support.design.widget.CoordinatorLayout
.......>
<android.support.design.widget.AppBarLayout
......>
<android.support.v7.widget.Toolbar
app:layout_scrollFlags="scroll|enterAlways"
....../>
</android.support.design.widget.AppBarLayout>
<FrameLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior"
....../>
</android.support.design.widget.CoordinatorLayout>
当FrameLayout包含带有recyclerview的片段时,向上滑动recyclerview确实会向上滚动工具栏。
问题在于以下情况:
- 用户通过滚动recyclerview向上滚动工具栏
- 用户从左侧滑动并打开抽屉
- 用户然后导航到另一个页面
- 屏幕上显示了另一个片段,但工具栏仍处于隐藏状态
此代码执行片段更改:
fragment = .. get new fragment ..
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.commit();
添加此代码无济于事:
getSupportActionBar().show();
我也尝试过:
toolbar.translationY(0).start();
但没有成功。
如何以编程方式使向上滚动(不可见)工具栏再次向下滚动?
1楼
我最后打电话
appBarLayout.setExpanded(true, true)
在内部的每个片段创建过程中
onCreateView
每个片段都继承自的抽象类的方法:
public abstract class AbstractFragmentBase extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// other code
customAppBar.setExpanded(true, true);
// other code
}
}