当前位置: 代码迷 >> Android >> 片段更改后显示隐藏的工具栏
  详细解决方案

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

热度:89   发布时间:2023-08-04 10:09:43.0

我有以下问题:

主要活动:

<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();

但没有成功。

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

我最后打电话

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
    }
}
  相关解决方案