package Ġcom . z ack rat os . ult imate bar x . sample Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . widget . Nested ScrollView Ċ import Ġcom . z ack rat os . ult imate bar x . library . Ult imate Bar X Ċ import Ġcom . z ack rat os . ult imate bar x . sample . extension . getStatus Bar Height Ċ import Ġkotlinx . android . synt hetic . main . fragment _ scroll .* Ċ Ċ /** Ċ Ġ* Ġ@ Author ĠĠ Ġ: Ġz hang w ench ao Ċ Ġ* Ġ@ Date ĠĠĠĠ Ġ: Ġ 2 0 2 0 / 7 / 1 ĠĠ 1 0 : 3 4 ĠPM Ċ Ġ* Ġ@ email ĠĠĠ Ġ: Ġz hang w ench ao @ so ul app . cn Ċ Ġ* Ġ@ Describe Ġ: Ċ Ġ*/ Ċ class ĠScroll Activity : ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . fragment _ scroll ) ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġ" ä¹Ŀ éĺ ´ çľŁ ç»ı " ĊĠĠĠĠĠĠĠ Ġtoolbar . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . layout Params Ġ= Ġ( toolbar . layout Params Ġas ĠFrame Layout . LayoutParams ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġtop Margin Ġ= Ġget StatusBar Height () Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ ĠU lt imate Bar X . create ( Ult imate Bar X . STATUS _ BAR ). transparent (). apply ( this ) ĊĠĠĠĠĠĠĠ ĠU lt imate Bar X . with ( this ). transparent (). apply StatusBar () ĊĠĠĠĠĠĠĠ Ġscroll View . setOn Scroll ChangeListener Ġ{ Ġ_: ĠNested ScrollView ?, Ġ_, Ġscroll Y : ĠInt , Ġ_, Ġold Scroll Y : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠimageView . height Ġ- Ġget StatusBar Height () Ġ- Ġtoolbar . height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( height Ġin Ġ( old Scroll Y Ġ+ Ġ 1 ) .. scroll Y ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU lt imate Bar X . create ( Ult imate Bar X . STATUS _ BAR ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fit Window ( false ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bgColor ( Color . WHITE ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. light ( true ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU lt imate Bar X . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fit Window ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. color ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. light ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply StatusBar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( height Ġin Ġ( scroll Y Ġ+ Ġ 1 ) .. old Scroll Y ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU lt imate Bar X . create ( Ult imate Bar X . STATUS _ BAR ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transparent () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU lt imate Bar X . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transparent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply StatusBar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }