SmartRefreshLayout包裹RecyclerView點擊item或者打開新頁面返回出現背景變黑問題

SmartRefreshLayout包裹RecyclerView出現背景變黑,原因是我在AndroidManifest.xml設置了

<application
    android:hardwareAccelerated="false"/> //false關閉硬件加速 true打開硬件加速

這時我們將這個屬性設置爲true即可

application裏面android:hardwareAccelerated屬性設置false導致全局硬件加速關閉,網上搜索資料發現可以在Application、Activity、Window、View分別設置android:hardwareAccelerated屬性

控制硬加速
  你可以在以下級別上分別控制硬加速:

Application中設置全局關閉硬件加速

<application   android:hardwareAccelerated="false">

</application>

指定Activity中設置關閉硬件加速

<application   android:hardwareAccelerated="true">

       <activity   android:hardwareAccelerated="false" />

</application>

Window(暫時用不得,感興趣的朋友可以自行百度)

View中使用

                禁止某個View的硬件加速,注:當前不能在view級別設置硬件加速,view層有除禁止硬件加速之外的其它功能

                 view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

判段一個View是否能被硬加速,有時一個應用瞭解是否啓用了硬件加速是很有用的,對那些自定義View之類的東西尤其重要.在你的應用做了一些不被最新的管線所支持的自定義繪製時這更加重要.

  有兩種方法可以檢查應用是否被硬件加速:

        view.isHardwareAccelerated():如果View附加到一個硬件加速的window上就返回true.

        canvas.isHardwareAccelerated():如果Canvas被硬件加速了就返回true.

  如果你必須在你的繪製代碼中做這個,應使用Canvas.isHardwareAccelerated()而不是View.isHardwareAccelerated().當一個view附加到一個硬件硬加速的window上,它仍可以使用非硬件加速的Canvas進行繪製操作.比如當爲了高速緩存而把一個view畫到一個bitmap中.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章