Android WebView 文明踩坑之路

情景一

webview 以頭佈局的形式添加到 RecyclerView 中,第一次進入頁面,當頁面中有 EditText 而且點擊時,甚至是相似點贊更換圖片、點擊 WebView 任意區域,都會形成 WebView 自動滑動到最頂部;html

分析:個人 WebView 在 onPageFinish() 的時候進行從新測量了高度,因此點擊事件等極可能是 WebView 獲取焦點從新繪製了,故而想到不讓WebView獲取焦點,嘗試過使用android

android:focusable="true"
        android:focusableInTouchMode="true

上述代碼只能解決 WebView 區域之外的點擊形成的WebView滑動至頂部問題,第一次進入 WebView 時點擊依然會形成 WebView 滾動;最後想到了 code android:descendantFocusability="blocksDescendants",貌似完美解決web

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:descendantFocusability="blocksDescendants">
            <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
    </LinearLayout>

descendantFocusability 屬性說明:佈局

beforeDescendants:viewgroup會優先其子類控件而獲取到焦點
    afterDescendants:viewgroup只有當其子類控件不須要獲取焦點時才獲取焦點
    blocksDescendants:viewgroup會覆蓋子類控件而直接得到焦點

情景二

Android 5.0 + 部分手機上 WebView 加載 GIF圖時 會形成 WebView 不停的閃爍code

解決方法查看個人另外一篇文章:WebView 5.0+閃爍以及白屏問題完美解決xml

相關文章
相關標籤/搜索