ScrollView中Recyclerview顯示不全

背景

公司項目開發,首頁有新聞、banner等其他東西,一頁肯定顯示不全,所以套了個ScrollView。新聞一共只顯示4條,默認全部顯示,滑動的時候只滑動ScrollView,!當然,新聞需要用到Ryc。首頁做完都快兩個月了,昨日猛然驚(我)喜(艸)發現,在安卓6.0的機子上,無論后臺返回的新聞條數是多少(大于2,正常情況下只返回4條),界面上都只顯示2條新聞,鬧鬼了!

仔細看底部導航欄的投影,我是拉到底的.gif

分析

這種問題,首先想到的是數據設置出錯,打斷點調試!沒錯!那我想應該是Adapter或者ViewHolder的錯,調試發現,Adapter中,雖然getCount()獲取到的數量是正確的,但是,onCreateView和OnBaindView的方法始終只調用了兩次,沒有全部調完!
網上氹了許久,皆不知為何,遂自我分析。

首先,自打用Rcyc起,便一直鐘愛這萬能BaseRecycAdpter,至今一年半載從未出過差錯,其他界面的rcyc也是正常顯示,故可基本排除,非此引起!
其次,此界面亦用了ScollerView,兩者屬性特點皆為滑動,代碼中,設置了Scoller下拉到頂部就觸發刷新數據,兩者滑動是否存在沖突?

實驗

既然如此,重新創建一個TestActivity,layout布局文件先使用自動生成的,把首頁布局中的RcyclerView拷貝進去,同樣的數據同樣的初始化,運行!能夠正常顯示,沒一點問題!!!然后,讓TextActivity加首頁的布局,其他什么都不變,運行!能顯示三個,但不能完全顯示。我再gone了首頁所有其他的組件,只留下rcyc,運行,漂亮,在首頁中,rcyc顯示正常!!!

結論

樣本的唯一性已經表明,首頁rcyc顯示不完全的問題,是和Scrollerview的嵌套產生的,rcyc的核心是ViewHolder,重復利用視圖,rcyc之所以顯示兩個有兩個原因:
1 rcyc在Scrollerview中重寫高度失敗,只能顯示兩個item的高度
2 重寫了LinerLayoutManager的canScrollVertically()方法,禁止了Rcyc的垂直滑動

兩則導致的結果,直接讓人產生的錯覺是rcyc只顯示兩個。如果不重寫canScrollVertically()方法,可以滑動看到其他item,但是rcyc的高度依然只有兩個item的高度。

解決辦法:

網上查詢ScrollView嵌套RecyclerView的問題,千篇一律說的都是重寫LinearLayoutManager,試了幾次,無愛心累,解決不了我的問題!

再次分析,是不是scrollview沒有下拉到底,所以rcyc顯示不完全,在rcyc后新加一個可視化控件,運行,能顯示新加的控件,說明scroller能夠下拉到底,但rcyc還是只顯示兩個item的高度。

或許是疾病亂投醫,瘋了!!!我直接給Rcyc外嵌套一個布局,再設置 android:descendantFocusability="blocksDescendants"
讓它直接獲得焦點(這個屬性可以不用加):

    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:descendantFocusability="blocksDescendants">
            <android.support.v7.widget.RecyclerView
                android:id="@+id/infor_recycle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="5dp"
                android:background="#FFFFFF">
            </android.support.v7.widget.RecyclerView>
        </RelativeLayout>

運行一看,哎喲我去,激動萬分啊!!!終于可以了!!!!android 6.0的機子上能正常顯示了。
巴特、巴特!似乎有點小問題,scroller滑動起來好像不怎么流暢!說白了還是嵌套滑動問題,直接設置

 recyclerview.setnestedscrollingenabled(false);//禁止rcyc嵌套滑動

試運行!噢啦!全部解決,老子這個雞凍喲,搞了將近四個小時!

true.gif

總結

我并沒有重寫LinearLayoutManager,只是嵌套了一層布局。但為什么這樣就可以了,我并沒弄清楚!

碎碎念

無論多么復雜的首頁布局,其實直接用一個Rcyc就可以搞定,而且scroller中嵌套rcyc本身就是個錯誤,
參考 VLayout適配器的萬能封裝

更多問題加群:584275290

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,363評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,497評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,305評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,962評論 1 311
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,727評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,193評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,257評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,411評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,945評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,777評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,978評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,519評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,216評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,657評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,960評論 2 373

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,643評論 25 708
  • 轉載注明出處:http://www.lxweimin.com/p/87a41b8c0dd0 前言 在Android開...
    王三的貓阿德閱讀 29,036評論 43 85
  • 北方的樹都如此孤獨,北方的人都更能忍耐孤獨吧? 白馬,長弓,利箭,遠靶,隨手按下拍照就是經典。 旅館,一個包子是一...
    littlecolor閱讀 685評論 0 48
  • 動物王國中有三類動物A,B,C,這三類動物的食物鏈構成了有趣的環形。A吃B, B吃C,C吃A。現有N個動物,以1-...
    passwd_閱讀 492評論 0 1
  • 四 感謝同學及時還錢 感謝自己的床可以讓我每天都睡得很舒服 感謝有那么舒服的音樂陪著我 記:自卑與嫉妒時不時的跑出...
    XBIN閱讀 181評論 0 0