Android TabLayout 增加滑動監(jiān)聽

背景:今天遇到一個問題,那就是現(xiàn)有的代碼中關(guān)于TabLayout,在沒有添加viewpager的情況下,要求實現(xiàn)滑動監(jiān)聽,當(dāng)滑動到最右邊的時候,需要隱藏響應(yīng)的陰影。

思路: 找了一圈,TabLayout并沒有scrollListener 的相關(guān)API實現(xiàn),只有OnTabSelectedListener,但是OnTabSelectedListener中只是對選中,未選中狀態(tài)的一個處理。

嘗試解決: 1. 往外層套一個ScrollView,發(fā)現(xiàn)ScrollView也進入不到scrollListener,因為事件傳遞被截斷了(不可行)
2. 監(jiān)聽treeViewObser ,當(dāng)發(fā)生偏移量變化的時候再去判斷元素(可行)

解決代碼:

   firstTabLayout.viewTreeObserver.addOnScrollChangedListener {
            val scrollX: Int = firstTabLayout.scrollX // Current x scrolling position
            val maxScrollX = firstTabLayout.getChildAt(0)?.width?.minus(firstTabLayout.width) ?: 0
            if (scrollX >= maxScrollX) {
                // 已滑動到最右邊
                shadowView.visibility = View.INVISIBLE
            } else {
                shadowView.visibility = View.VISIBLE
            }
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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