片段更改后显示隐藏的工具栏

时间:2015-10-19 06:29:28

标签: android material-design android-5.0-lollipop android-toolbar

我有以下问题:

main_activity:

<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的片段时,向上滑动recyclelerview会向上滚动工具栏。

以下情况是问题所在:

  • 用户通过滚动recyclelerview
  • 向上滚动工具栏
  • 用户从左侧滑动并打开抽屉
  • 用户然后导航到另一个页面
  • 另一个片段显示在屏幕上但BOL TOOLBAR仍然隐藏

此代码执行片段更改:

fragment = .. get new fragment ..
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.commit();

添加此代码无济于事:

getSupportActionBar().show();

我也尝试过:

toolbar.translationY(0).start();

但没有成功。

如何以编程方式使滚动(不可见)工具栏再次向下滚动?

1 个答案:

答案 0 :(得分:3)

我最后打电话给

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
    }
}