記一個(gè)遇到的問(wèn)題记某。
背景: 需要實(shí)現(xiàn)類似百度地圖換乘路線在地圖中展示的效果豆瘫。最終實(shí)現(xiàn)如圖:
這里遇到的問(wèn)題是下面出來(lái)的是一個(gè)ViewPager,帶了BottomSheetBehavior.? ViewPager的每頁(yè)中都有一個(gè)RecyclerView.然后就會(huì)出現(xiàn)RecyclerView上下滑動(dòng)不了(也不是都滑動(dòng)不了壁查,正確來(lái)說(shuō)只是第一頁(yè)的RecyclerView能滑動(dòng)焰盗,不過(guò)因?yàn)槲议_(kāi)發(fā)的時(shí)候換乘查詢出來(lái)的數(shù)據(jù)剛好第一頁(yè)中的路線是只有一條公交璧尸,所以內(nèi)容本來(lái)也沒(méi)到夠滑動(dòng)的地步,所以開(kāi)始誤以為是都滑動(dòng)不了)熬拒。
解決:簡(jiǎn)單看了下BottomSheetBehavior的源碼爷光,它只支持內(nèi)部有一個(gè)可以上下滑動(dòng)的控件,多個(gè)的話就取第一個(gè)澎粟。
這個(gè)mNestedScrollingChildRef在處理touch事件的時(shí)候會(huì)用到蛀序。所以解決辦法就是在ViewPager每次切換頁(yè)面的時(shí)候重新設(shè)置下這個(gè)mNestedScrollingChildRef就可以了。 可以直接copy代碼重新寫(xiě)一個(gè)BottomSheet也可以繼承原來(lái)的活烙,直接把泛型View的子類改為ViewPager, 就是只給ViewPager用的徐裸。最后在onLayoutChild方法中
完美!