欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一個吸頂Item的簡單實(shí)現(xiàn)方法分享

 更新時間:2019年09月07日 14:12:05   作者:susion  
這篇文章主要給大家介紹了一個吸頂Item的簡單實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧


一般的對于上圖樣式的Sticker我們使用CoordinatorLayout & AppBarLayout就可以說實(shí)現(xiàn)。

但是對于下面這種呢?

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

首先整個頁面的UI結(jié)構(gòu)是通過RecyclerView實(shí)現(xiàn)的。

對于上面這個Sticker的實(shí)現(xiàn)是在布局的最上方添加了一個和RecyclerView中要吸頂?shù)腎tem一模一樣的布局。然后監(jiān)聽RecyclerView的滾動:

mPostDetailRv.addOnScrollListener(object : RecyclerView.OnScrollListener() {
 override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
  if (pageStatus == null || pageStatus.stickerPos == -1) return

  val preHolder = recyclerView.findViewHolderForAdapterPosition(pageStatus!!.stickerPos - 1)
  val targetHolder = recyclerView.findViewHolderForAdapterPosition(pageStatus!!.stickerPos)

  var offset = if (targetHolder != null) { //滾出去了
   -targetHolder.itemView.top
  }else{
   0
  }

  if (preHolder != null) {
   offset = -1 
  }

  if (offset < 0) {
   mPostDetailCommentHeaderSticker.visibility = View.GONE
  } else {
   mPostDetailCommentHeaderSticker.visibility = View.VISIBLE
  }
 }
}

上面pageStatus.stickerPos是Sticker在RecyclerView中的數(shù)據(jù)的位置。上面的邏輯寫的其實(shí)比較復(fù)雜,不過確實(shí)實(shí)現(xiàn)了需求(-_-), 我解釋一下:

即我判斷Sticker是否出現(xiàn)依賴于itemView.top和Sticker的前一個itemview:

  1. 如果當(dāng)前的Sticker的 itemview顯示在RecyclerView中,則根據(jù)它itemView.top來判斷它是否滾動到了頂部
  2. 如果它的前一個itemview已經(jīng)不在RecyclerView中了(被回收了),那說明它肯定滾出去了,這時直接顯示

上面的邏輯很奇怪,不過確實(shí)實(shí)現(xiàn)了吸頂?shù)男枨蟆?br />

不過在后面的需求迭代中Sticker ItemView的前一個ItemView會不斷變化,于是上面這段代碼就出現(xiàn)了bug。。。。 那怎么解決呢?

更簡單通用的方法

最后靈機(jī)一動,對于StickerItemView的顯示我完全可以不依賴于前面這個ItemView:

mPostDetailRv.addOnScrollListener(object : RecyclerView.OnScrollListener() {
 override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
  val currentDataPos = recyclerView.getChildAdapterPosition(recyclerView.getChildAt(0))

  if (pageStatus != null && currentDataPos < pageStatus.stickerPos) {
   mPostDetailCommentHeaderSticker.visibility = View.GONE
  } else {
   mPostDetailCommentHeaderSticker.visibility = View.VISIBLE
  }
 }
})

上面這段代碼很輕松的修復(fù)了bug。并且它的邏輯很簡單,也很通用:

判斷當(dāng)前RecyclerView顯示的第一個條目的位置是否大于StickerItem的位置,如果大于就展示吸頂Sticker

效果:

上面這種實(shí)現(xiàn)僅適用UI結(jié)構(gòu)是RecyclerView的情況

PASS : 如果你就是這么做的,請無視我(-_-)

更多小分享 : AdvancedAndroid

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Android 對話框sweet-alert-dialog

    Android 對話框sweet-alert-dialog

    這篇文章主要介紹了Android 對話框sweet-alert-dialog的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Flutter實(shí)現(xiàn)自定義搜索框AppBar的示例代碼

    Flutter實(shí)現(xiàn)自定義搜索框AppBar的示例代碼

    開發(fā)中,頁面頭部為搜索樣式的設(shè)計非常常見,為了可以像系統(tǒng)AppBar那樣使用,本文將利用Flutter自定義一個搜索框,感興趣的可以了解一下
    2022-04-04
  • 解決Android Studio突然不顯示logcat日志的問題

    解決Android Studio突然不顯示logcat日志的問題

    這篇文章主要介紹了解決Android Studio突然不顯示logcat日志的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Android實(shí)現(xiàn)秒表功能

    Android實(shí)現(xiàn)秒表功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡易秒表功能,具備啟停功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android?Bugreport實(shí)現(xiàn)原理深入分析

    Android?Bugreport實(shí)現(xiàn)原理深入分析

    這篇文章主要介紹了Android?Bugreport實(shí)現(xiàn)原理,Bugreport主要用于分析手機(jī)的狀態(tài),在應(yīng)用開發(fā)中,程序的調(diào)試分析是日常生產(chǎn)中進(jìn)程會進(jìn)行的工作,Bugreport就是很常用的工具,需要的朋友可以參考下
    2024-05-05
  • Android應(yīng)用中使用及實(shí)現(xiàn)系統(tǒng)“分享”接口實(shí)例

    Android應(yīng)用中使用及實(shí)現(xiàn)系統(tǒng)“分享”接口實(shí)例

    為了應(yīng)用的推廣、傳播,很多的應(yīng)用中都有“分享”功能,這篇文章主要介紹了Android應(yīng)用中使用及實(shí)現(xiàn)系統(tǒng)“分享”接口實(shí)例,有興趣的可以了解一下。
    2016-12-12
  • Android實(shí)現(xiàn)動態(tài)體溫計

    Android實(shí)現(xiàn)動態(tài)體溫計

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)動態(tài)體溫計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Android studio實(shí)現(xiàn)左右滑動切換圖片

    Android studio實(shí)現(xiàn)左右滑動切換圖片

    這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)左右滑動切換圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Android證書安裝過程介紹

    Android證書安裝過程介紹

    大家好,本篇文章主要講的是Android證書安裝過程介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Android實(shí)現(xiàn)同頻共幀動畫效果

    Android實(shí)現(xiàn)同頻共幀動畫效果

    我們聽過“同頻共振”,其原理是多個物體物體以同樣的頻率振動,但是本篇實(shí)現(xiàn)的效果是“同頻共幀”,含義是:動畫以同樣的頻率和同樣的幀展示在多個不同View上,文中通過代碼示例介紹的非常詳細(xì),感興趣的同學(xué)可以自己動手嘗試一下
    2024-01-01

最新評論