android scollview嵌套webview底部空白,高度無法自適應解決

來源:互聯網
上載者:User

標籤:android   webview   scollview   

最近要做一個頁面,需要scollview嵌套webview,怎麼嵌套,怎麼解決焦點和touch時間衝突,網上一大堆,這裡就不贅述了

但是發現webview從一個高度很高的網頁載入一個高度很低的網頁的時候,高度無法自適應了,造成底部會有一大片的空白,解決方案找到了挺多,描述一下


1.google建議不要在scrollview中使用webview,但是畢竟無法避免,產品的需求

2.每次載入新的url的時候remove掉舊的webview,重新加入一個新的webview去載入這個新url,這種方案是可行的,但是畢竟不太好,效率不高

3.js注入


mWebView.setWebViewClient(new WebViewClient() {@Overridepublic void onPageFinished(WebView view, String url) {mWebView.loadUrl("javascript:App.resize(document.body.getBoundingClientRect().height)");super.onPageFinished(view, url);}});mWebView.addJavascriptInterface(this, "App");


@JavascriptInterfacepublic void resize(final float height) {getActivity().runOnUiThread(new Runnable() {@Overridepublic void run() {//Toast.makeText(getActivity(), height + "", Toast.LENGTH_LONG).show();mWebView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density)));}});}

記住該resize方法一定要上面那麼寫,寫成
mWebView.getLayoutParams().height = (int) (height * getResources().getDisplayMetrics().density);
這樣是無法成功的,看來寬度也是有影響的


還有一些網上的另外解決方案,我試了一下,都無法成功
4.在從高網頁載入低網頁的時候,先載入一個空內容,接著立馬做相關的處理操作(比如載入新的網頁,更改字型等),

// load empty data to shrink the WebView instancemArticleWebView.loadUrl(Constants.ASSETS_EMPTY);// load real datamArticleWebView.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);

Constants.ASSETS_EMPTY 僅僅只是一個String子串,標識該空網頁的位置,所以該變數可以為 "file:///android_asset/Empty.html".

試了一下,也是不好用的,不知道時不時我的操作問題,原文連結http://vision-apps.blogspot.hk/2012/08/android-webview-tips-tricks.html

5.修改setting屬性

wv.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);wv.setVerticalScrollBarEnabled(false);wv.setVerticalScrollbarOverlay(false);wv.setHorizontalScrollBarEnabled(false);wv.setHorizontalScrollbarOverlay(false);


一樣不好用,原文連結http://blog.csdn.net/wht3xr/article/details/21004053

6.一些人的討論:http://stackoverflow.com/questions/15546416/how-to-shrink-webview-size-dynamically-according-to-its-content


總結了一下,第3中方法還是比較好用的,如果大神還有其他解決方案,希望能告訴我

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

android scollview嵌套webview底部空白,高度無法自適應解決

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.