Android 仅在特定片段中滚动时,坐标布局隐藏工具栏

Android 仅在特定片段中滚动时,坐标布局隐藏工具栏,android,android-coordinatorlayout,Android,Android Coordinatorlayout,我对多个片段使用单活动方法,在主屏幕中我有RecycleView,我只想在主屏幕中滚动时隐藏工具栏,因为它是单活动和一个顶级协调器,在所有屏幕中滚动时隐藏工具栏 如何在某些屏幕上启用滚动隐藏工具栏,在单个活动中禁用其他屏幕的滚动隐藏工具栏?您必须跟踪活动中活动的碎片屏幕,并使用这些功能隐藏或显示 fun enableLayoutBehaviour() { val layoutParams: CoordinatorLayout.LayoutParams = coordinatorLayou

我对多个片段使用单活动方法,在主屏幕中我有RecycleView,我只想在主屏幕中滚动时隐藏工具栏,因为它是单活动和一个顶级协调器,在所有屏幕中滚动时隐藏工具栏


如何在某些屏幕上启用滚动隐藏工具栏,在单个活动中禁用其他屏幕的滚动隐藏工具栏?

您必须跟踪活动中活动的碎片屏幕,并使用这些功能隐藏或显示

fun enableLayoutBehaviour() {
    val layoutParams: CoordinatorLayout.LayoutParams = coordinatorLayout.layoutParams 
    layoutParams.behavior = AppBarLayout.ScrollingViewBehavior()
}

fun disableLayoutBehaviour() {
    val layoutParams: CoordinatorLayout.LayoutParams = coordinatorLayout.layoutParams
    layoutParams.behavior = null
}

您必须跟踪活动中活动的碎片屏幕,并使用这些功能隐藏或显示

fun enableLayoutBehaviour() {
    val layoutParams: CoordinatorLayout.LayoutParams = coordinatorLayout.layoutParams 
    layoutParams.behavior = AppBarLayout.ScrollingViewBehavior()
}

fun disableLayoutBehaviour() {
    val layoutParams: CoordinatorLayout.LayoutParams = coordinatorLayout.layoutParams
    layoutParams.behavior = null
}

@在我的例子中,Yonatan的回答是不够的,当在碎片之间导航时,一些视图在底部不可见,可能是一些高度配置错误

启用和禁用工具栏的滚动标志工作正常

public void disableToolbarScrollBehavior() {
        final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
        params.setScrollFlags(0);
    }

    public void enableToolbarScrollBehavior() {    
        final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
        params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
    }

@在我的例子中,Yonatan的回答是不够的,当在碎片之间导航时,一些视图在底部不可见,可能是一些高度配置错误

启用和禁用工具栏的滚动标志工作正常

public void disableToolbarScrollBehavior() {
        final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
        params.setScrollFlags(0);
    }

    public void enableToolbarScrollBehavior() {    
        final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
        params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
    }