2018-11-07


哈,轉(zhuǎn)眼已經(jīng)十一月了。


這期需求是跟CoordinaterLayout相關(guān),需要根據(jù)滑動(dòng)位置動(dòng)態(tài)更新一個(gè)ImageView的位置與大小。

需求分析

  1. 根據(jù)頁(yè)面滑動(dòng)距離,動(dòng)態(tài)更新view layout,其中分為位置和大小兩個(gè)方面
  2. 頁(yè)面中部title條上滑到頂后吸頂
  3. view保持可點(diǎn)擊狀態(tài)并且最后固定在吸頂title上,更新點(diǎn)擊事件

實(shí)現(xiàn)思路

  1. 先考慮第二個(gè)需求,吸頂可以通過(guò)CoordinaterLayout配合AppBarLayout以及CollapsingToolBarLayout實(shí)現(xiàn)
  2. 那么再來(lái)考慮第一個(gè)需求,現(xiàn)在有兩個(gè)思路
    • 第一個(gè),我們可以通AppBarLayout.OnOffsetChangedListener來(lái)監(jiān)聽(tīng)AppBarLayout的offset,來(lái)確定view需要的translation以及scale
    • 我們可以通過(guò)CoordinaterLayout中的Behavior來(lái)對(duì)view進(jìn)行設(shè)置,而這也有兩種實(shí)現(xiàn)方式
      1. 某個(gè)view監(jiān)聽(tīng)另一個(gè)view的狀態(tài)變化,例如大小、位置、顯示狀態(tài)等需要重寫(xiě)layoutDependsOn和onDependentViewChanged方法
      2. 某個(gè)view監(jiān)聽(tīng)CoordinatorLayout內(nèi)NestedScrollingChild的接口實(shí)現(xiàn)類的滑動(dòng)狀態(tài)重寫(xiě)onStartNestedScroll和onNestedPreScroll方法
  3. view吸頂可以在CollapsingToolBarLayout中通過(guò)layout_scrollFlags來(lái)指定狀態(tài)條吸頂?shù)臓顟B(tài)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,030評(píng)論 25 709
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,989評(píng)論 2 59
  • Version:1.0StartHTML:000000231EndHTML:000105074StartFragm...
    yasuo1閱讀 264評(píng)論 0 0
  • 文章轉(zhuǎn)載自:https://www.cnblogs.com/Ry-yuan/p/7384149.html css語(yǔ)...
    王叮叮當(dāng)當(dāng)響閱讀 499評(píng)論 0 0
  • 有些煩惱,丟掉了,才有云淡風(fēng)輕的機(jī)會(huì)。 大聲的笑出聲來(lái),就不再害怕了。 什么時(shí)候我們開(kāi)始無(wú)法像孩子一樣肆意地...
    不會(huì)寫(xiě)作的女青年閱讀 142評(píng)論 0 0

友情鏈接更多精彩內(nèi)容