近日接到一個需求狼犯,需要在一個頁面上方用webview顯示網(wǎng)頁的內(nèi)容女揭,下半部分用原生實現(xiàn)一個評論列表肋杖。
初步想法有兩個:
1屏鳍、Header模式:用RecyclerView顯示原生的評論列表勘纯,把WebView作為RecyclerView的第0項。
ViewGroup.LayoutParams lp =newViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
WebView web =newWebView(parent.getContext());
web.setLayoutParams(lp);
需要把WebView撐開钓瞭,保證WebView的內(nèi)容完全展示驳遵。
2、ScrollView模式:最外層用NestedScrollView容器山涡,內(nèi)層放一個LinearLayout,從上到下依次是WebView和RecyclerView;
布局上沒有什么大的問題堤结,就是滾動會覺得有點卡,沒有關(guān)系鸭丛,設(shè)置一下就好了竞穷。
LinearLayoutManager layoutManager =newLinearLayoutManager(this);
layoutManager.setSmoothScrollbarEnabled(true);
layoutManager.setAutoMeasureEnabled(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.setNestedScrollingEnabled(false);
recyclerView.setLayoutManager(layoutManager);
Pros and Cons:
總的來說,優(yōu)缺點非常明顯鳞溉,在評論列表條數(shù)特別多(實驗時用了500條)的時候:
頁面初始化結(jié)束時:Header模式申請的內(nèi)存為25.77m瘾带;ScrollView模式申請的內(nèi)存為37.87m
列表滾動到底時:Header模式申請的內(nèi)存為28.09m; ScrollView模式申請的內(nèi)存為40.63m
gc后:Header模式申請的內(nèi)存為25.05m; ScrollView模式申請的內(nèi)存為27.77m
Example: https://github.com/bobbySpace/WebviewAndList