效果圖
仿簡(jiǎn)書個(gè)人主頁.gif
整體布局
FrameLayout+CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+TabLayout+ViewPager
整體布局.png
關(guān)鍵代碼
監(jiān)聽AppBarLayout
滑動(dòng)事件,StatusBar
和Toolbar
顏色隨著其滑動(dòng)而不斷改變。
app_bar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset ->
val ratio = Math.abs(verticalOffset) * 1.0f / appBarLayout.totalScrollRange
view_status_height.setBackgroundColor(ColorUtils.blendARGB(Color.TRANSPARENT, Color.WHITE, ratio))
view_toolbar_bg.setBackgroundColor(ColorUtils.blendARGB(Color.TRANSPARENT, Color.WHITE, ratio))
iv_toolbar_back.isSelected = ratio >= 0.5
iv_toolbar_nav.isSelected=ratio >= 0.5
iv_toolbar_search.isSelected = ratio >= 0.5
toolbar_title.visibility = if (ratio >= 0.5) View.VISIBLE else View.INVISIBLE
ImmersionBar.with(this@JSUserInfoActivity).statusBarDarkFont(ratio >= 0.5).init()
})