国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 系統(tǒng) > Android > 正文

Android Webview滑進(jìn)出屏幕閃爍的解決方法

2019-10-21 21:19:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

在使用Webview進(jìn)行滑動(dòng)操作時(shí),從屏幕可見(jiàn)區(qū)域外向內(nèi)滑動(dòng)時(shí),會(huì)出現(xiàn)webview區(qū)域閃爍的問(wèn)題(反之也是),本文將提供一種解決方案。

問(wèn)題圖示

Android,Webview,屏幕閃爍

xml布局:

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true" android:overScrollMode="never" android:scrollbars="none"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <View android:id="@+id/contentView" android:layout_width="match_parent" android:layout_height="600dp" android:background="@color/colorPrimary" /> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/contract_font"></WebView> </LinearLayout></android.support.v4.widget.NestedScrollView>

可以看到,NestedScrollView嵌套webview,且webview初始未在一屏內(nèi)時(shí),滑進(jìn)出屏幕時(shí)會(huì)有短暫的白色塊。

解決問(wèn)題

方案對(duì)比

 

 

方案 考慮點(diǎn)
android:hardwareAccelerated="false" 5.0 開始Android系統(tǒng)為了充分利用GPU的特性,使得界面渲染更加平滑而默認(rèn)開啟的,如果關(guān)掉的話,那么整個(gè)網(wǎng)頁(yè)不流暢了,豈不是得不償失——>放棄
setBackgroundColor(Color.parseColor(“#00000000”)); setBackgroundResource(R.drawable.white); 設(shè)置底色背景,但是webview本身是加載的H5頁(yè)面,使用的是H5頁(yè)面的底色背景,而且通過(guò)上面的gif可以看出,沒(méi)有效果——>放棄
==通過(guò)樣式布局,讓webview保持在第一屏內(nèi)初始化== 本文嘗試的方案

方案探索

1.xml布局

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true" android:overScrollMode="never" android:scrollbars="none"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/contract_font"></WebView> <View android:id="@+id/contentView" android:layout_width="match_parent" android:layout_height="600dp" android:background="@color/colorPrimary" /> </FrameLayout></android.support.v4.widget.NestedScrollView>

通過(guò)FrameLayout來(lái)疊加使得webview保持在第一屏內(nèi)初始化,然后設(shè)置webview的padding,這樣使得完整的H5內(nèi)容是在ContentView下方顯示。

但是——>webview設(shè)置padding根本無(wú)效!??!

怎么辦呢?無(wú)論怎樣也想不到為什么會(huì)如此,畢竟本身api的實(shí)現(xiàn)上是有些缺陷的(https://stackoverflow.com/questions/9170042/how-to-add-padding-around-a-webview )

2.解決問(wèn)題

最終的解決方案則是通過(guò)注入js代碼來(lái)控制H5的padding來(lái)解決。

 webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { contentView.post(new Runnable() {  @Override  public void run() {  contentViewHeight = px2dp(getApplicationContext(), contentView.getMeasuredHeight());  if (contentViewHeight > 0) {  webView.loadUrl("javascript:document.body.style.marginTop=/"" + contentViewHeight + "px/"; void 0");  }  } }); } });

看下猜想運(yùn)行的結(jié)果:

Android,Webview,屏幕閃爍

H5的顯示缺少了頂部,這樣看來(lái)padding是沒(méi)有效果的。但是,為什么會(huì)沒(méi)有效果呢,難道設(shè)置padding有問(wèn)題?
之后查看了上面嵌入的網(wǎng)頁(yè)的源碼查看了下(網(wǎng)頁(yè)是網(wǎng)絡(luò)上隨便找的一個(gè)url):

https://36kr.com/

打開網(wǎng)頁(yè)編輯模式,查看body這塊的樣式:

Android,Webview,屏幕閃爍

可以看到要注入的js控制的樣式這塊是沒(méi)有設(shè)置的。因此可以將padding-top的參數(shù)通過(guò)這里設(shè)置進(jìn)去。

Android,Webview,屏幕閃爍

但是發(fā)現(xiàn)設(shè)置的該參數(shù)無(wú)效,是什么原因呢?接著往下翻:

Android,Webview,屏幕閃爍

原來(lái)是body中控制了padding-top的最高級(jí)樣式顯示,所以element-style中設(shè)置無(wú)效。所以要么把這段注釋掉,重新寫入至element-style中,要么嘗試設(shè)置margin-top的方法。這里采用后者的做法:

Android,Webview,屏幕閃爍

可以看到,網(wǎng)頁(yè)頂部出現(xiàn)了設(shè)置好的marin-top空白的高度。

只需要將這部分操作轉(zhuǎn)換為對(duì)應(yīng)的代碼即可:

將上面的

webView.loadUrl("javascript:document.body.style.paddingTop="" + contentViewHeight + "px"; void 0");

替換為:

webView.loadUrl("javascript:document.body.style.marginTop=/"" + contentViewHeight + "px/"; void 0");

3.運(yùn)行效果

Android,Webview,屏幕閃爍

可以看到已經(jīng)沒(méi)有閃爍了。

總結(jié)

整個(gè)方案的實(shí)現(xiàn)其實(shí)就兩塊:

1.布局,讓webview在一屏內(nèi)初始;

2.設(shè)置H5網(wǎng)頁(yè)的margin-top或者padding-top;

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
亚洲最新永久观看在线| 日本成人在线播放| 精品乱码一区二区三四区视频| 国产夫妻视频| 轻轻色免费在线视频| 在线观看电影av| 在线色视频观看| wwww在线观看| 免费电影网站在线视频观看福利| 精品国语对白精品自拍视| 国产福利在线观看| 日本国产在线| 国产区高清在线| √天堂8资源中文在线| 在线国产网址| 日本国产在线| 国产二区视频在线观看| 黄网站在线观看高清免费| 欧美色第一页| 国产一区精品| 四虎成人免费| 国产视频一二| 欧美a免费在线| 中文字幕乱在线伦视频乱在线伦视频| 国产精品入口麻豆免费| www.色五月| 在线观看免费高清完整| 国产亚洲精品久久久久久青梅 | 国产福利小视频在线| 香蕉视频在线观看www| 国产理论电影在线观看| wwww亚洲| 国产高清一级片| 二区中文字幕| 免费高清av| 久久99亚洲网美利坚合众国| 亚洲色婷婷综合开心网| 精品欧美日韩一区二区| 青青草视频在线免费观看| 久草视频国产| 成网站在线观看人免费| 日韩a视频在线观看| 在线国产福利网站| 精品国产福利一区二区在线| 国产激情自拍| 精品国内自产拍在线视频| 国产粉嫩一区二区三区在线观看| 国产性一级片| 国产福利片在线| 91最新在线| av超碰在线| 亚洲国产日韩在线人成电影| japanese色国产在线看视频| 亚洲精品乱码电影在线观看| 国产日产精品久久久久久婷婷| 天天av天天爽| 国产网友自拍视频导航网站在线观看| 日本中文字幕高清视频| 日本中文字幕视频| 国产三级香港三韩国三级| 精品视频麻豆入口| 女同一区二区免费aⅴ| 中文字幕乱在线伦视频乱在线伦视频| 国产精品bbw一区二区三区| 精品视频一二三| 免费在线播放av| 国产乱子视频| 中文在线视频| 懂色av一区| 国产无遮挡又黄又爽免费软件| 精品无人乱码| 久草在线视频网| 国产成人精品综合网站| 在线视频99| 日本中文字幕高清视频| 伊人永久在线| 最新中文字幕av专区| √天堂资源中文www| 嫩草在线播放| 国产超碰在线观看| 毛片视频免费观看| 精品国产一区二区三区久久久狼牙| 亚洲精品视频在线免费| 1区2区3区在线| av在线不卡免费| 国产黄色免费在线观看| 丁香花视频在线观看| 依依成人在线| 精品国产一区二区三区四区阿崩| 国产在线超碰| 欧洲一区av| jizz性欧美| 日韩在线天堂| av在线第一页| 亚洲精品视频区| 亚洲精品自产拍在线观看| 91在线最新| 中文天堂av| 亚洲网站一区| 精品国产99久久久久久| 国产porny蝌蚪视频| 国产午夜三区视频在线| 中文字幕有码在线视频| 综合激情亚洲| 中文字幕欧美日韩在线不卡| 国产精选一区二区三区不卡催乳| heisi视频网在线观看| 日本一本久久| 狠狠操五月天| 尤物免费看在线视频| 国产写真视频在线观看| 国产精品69xx| 在线国产网址| 黄色av免费在线| 国产卡二和卡三的视频| 国产精品yjizz视频网一二区| 国产成a人亚洲精v品| 亚洲日本久久久午夜精品| 欧美日韩**字幕一区| 国产麻豆精品入口在线观看| 国产农村av| 国产三区四区在线观看| 在线黄色.com| 精品孕妇一区二区三区| 国产丝袜在线播放| 天天干天天操天天爽| 午夜国产视频| 伊人春色在线| 国产精选在线视频拍拍拍| 国产精品久久精品牛牛影视| 精品精品导航| 国产精品臀控福利在线观看| 国产精品入口麻豆高清| 日本动漫同人动漫在线观看| 国产一级性片| 夜色资源网av在先锋网站观看| 国产在线观看a| 国产变态拳头交视频一区二区| www.狠狠操| 91这里只有精品| 中文字幕专区| 欧美日韩在线精品成人综合网| 国产黄色在线播放| 国产美女福利在线| 精品入口麻豆传煤| 国产欧美黑人| 尤物网址在线观看| 九九热视频免费在线观看| 精品亚洲综合| 999福利在线视频| 国产精品久久久高清免费| 国自产拍在线网站网址视频| 亚洲第一区视频| 亚洲精品男人| av文字幕在线观看| 伊人av免费在线观看| 国产精品白浆流出视频| 最好看更新中文字幕| 久久精品免视着国产成人| 亚洲最新永久观看在线| 96久久久久久| 99re在线视频播放| 亚洲an天堂an在线观看| 亚洲久草视频| 免费av在线| 91av资源在线| 91sp网站在线观看入口| 午夜视频在线免费 | 欧美日韩一区二区三区在线播放| 在线视频xx| www.超级碰| 国产美女一区视频| 国产精品麻豆一区二区三区 | 最新中文字幕在线| 国产小视频在线高清播放| 国产区在线视频| 在线观看av的网站| 久热免费视频| 中文字幕色视频| 伊人伊人av电影| 欧美a免费在线| 中文字幕国产欧美| 国产成免费视频| 欧美精品se| 国产区在线观看| 伊人色综合网| 另类综合图区| 国产精品欧美韩国日本久久| a√在线视频| 非洲黑人最猛性xxxx交| 国产成人久久精品77777| 日本天堂影院在线视频| 国产麻豆精品高清在线播放| 国产www在线观看| 国产在线免费观看| 在线观看wwww| 国产精品四虎| 丁香视频免费观看| 在线视频观看你懂的| 99热在线免费播放|