要实现Android CollapsingToolbarLayout或AppBarLayout滚动到状态栏后,上方填充的行为,可以通过以下步骤实现:
// 获取CollapsingToolbarLayout或AppBarLayout的LayoutParams
val params = collapsingToolbarLayout.layoutParams as CoordinatorLayout.LayoutParams
// 设置LayoutParams的滚动标志位
params.scrollFlags = AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL or
AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS or
AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP
// 将LayoutParams重新设置给CollapsingToolbarLayout或AppBarLayout
collapsingToolbarLayout.layoutParams = params
上述代码中,我们将LayoutParams的滚动标志位设置为SCROLL_FLAG_SCROLL
表示可以滚动,SCROLL_FLAG_ENTER_ALWAYS
表示当内容滚动出屏幕时,Toolbar会立即显示,SCROLL_FLAG_SNAP
表示当内容滚动到临界位置时自动展开或折叠。
这样,当CollapsingToolbarLayout或AppBarLayout滚动到状态栏后,上方的内容会自动填充。