1.情形一:有時候開發時會遇到ScrollView裏嵌套列表,很天然的就會用到RecyclerView ,而recyclerView.setNestedScrollingEnabled(false);能夠解決滑動衝突,開始ScrollView 嵌套RecyclerView 分頁上拉剛開始時很順,沒有問題,當上拉數據愈來愈多的時候就開始卡,最後頁面直接就卡死了,不斷的排除各類緣由,圖片過大,glide封裝優化,內存泄漏,自定義控件問題,多開闢子線程,註釋代碼都仍是會卡,後面開始定位是否是RecyclerView的複用回收問題。android
解決方法:git
若是是 TabLayout+ViewPager+Fragment :fragment的根目錄不用NestScrollView 直接用LinearLayout 嵌套github
RecyclerView 代碼中記得去了recyclerView.setNestedScrollingEnabled(false); 否則會有滑動問題ide
2.情形二:在寫一個ScrollView 嵌套Viewpager和RecyclerView的佈局時,RecyclerView總是自動得到焦點而後在ScrollView佈局
內部上下自動滾動,嘗試了在ScrollView的直接子LinearLayout使用優化
android:focusable=「true」 android:focusableInTouchMode=「true」線程
但在一些狀況下 ScrollView仍是會自動得到焦點而後滾動起來,最後的方案code
解決方案:圖片
在ScrollView下面的LinearLayout加上android:descendantFocusability="blocksDescendants"屬性, 截獲 ListView的焦 點, 從而達到禁止ScrollView自動滾動.順便解釋下這個屬性的其餘用法:內存
該屬性是當一個爲view獲取焦點時,定義viewGroup和子控件二者之間的關係。屬性的值有三種:beforeDescendants:viewgroup會優先其子類控件而獲取到焦點
afterDescendants:viewgroup只有當其子類控件不須要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控件而直接得到焦點
3.若是是RecyclerView 上面還有幾個佈局推薦使用這個大神的用法
https://github.com/385841539/RecycleviewStaggered.git