Android Webview导致页面上各种元素的背景图像变黑

Android Webview导致页面上各种元素的背景图像变黑,android,android-layout,android-fragments,android-activity,android-webview,Android,Android Layout,Android Fragments,Android Activity,Android Webview,横幅广告一直到今天都很有效。我注意到,每当横幅广告中出现动画时,就会出现闪烁 这会影响片段/活动中所有元素的背景区域,无论何时导入和加载AdMob片段 class AdBFiller : Fragment() { private lateinit var mAdView: AdView private val mAppUnitId: String = "ad-code" var fragContext: Context? = null ov

横幅广告一直到今天都很有效。我注意到,每当横幅广告中出现动画时,就会出现闪烁

这会影响片段/活动中所有元素的背景区域,无论何时导入和加载AdMob片段


class AdBFiller : Fragment() {
    private lateinit var mAdView: AdView
    private val mAppUnitId: String = "ad-code"
    var fragContext: Context? = null

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        val adFrag = inflater.inflate(R.layout.banner_filler, container, false)
        fragContext = context

        initializeBannerAd()

        viewAppender(fragContext!!, adFrag)

        loadBannerAd()
        return adFrag
    }

    private fun initializeBannerAd() {
        MobileAds.initialize(fragContext!!)
    }

    private fun loadBannerAd() {
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }

    fun viewAppender(contxt: Context, adFrag: View) {
        mAdView = AdView(contxt)
        mAdView.setAdSize(AdSize.BANNER)        // also same issue with SMART_BANNER
        mAdView.setAdUnitId(mAppUnitId)

        (adFrag as FrameLayout).addView(mAdView)
    }

    override fun onDestroyView() {
        mAdView.destroy()
        super.onDestroyView()
    }

    override fun onDestroy() {
        mAdView.destroy()
        super.onDestroy()
    }

    override fun onResume() {
        super.onResume()
        mAdView.resume()
    }


    override fun onPause() {
        super.onPause()
        mAdView.pause()
    }

}

布局(横幅填充物)如下所示:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".activities.AdBFiller"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</FrameLayout>
adStub是一个框架布局

我想这是因为AdMob代码自动发生的,因为它已经运行了很多天了。 如何使应用程序免受这些因素的影响

虽然效果在视频中很小,我的其他页面受到了很大的影响


编辑: 事实证明,这是我的手机/制造商特有的问题,因为网页上加载了WebView。 由于广告使用webview,问题的原因似乎在于广告注入代码

型号:荣誉华为-9N,
LLD-AL20,
欧洲货币联盟9.1.0,
Android Verion 9

具体内容:

webview的内容必须完成加载才能开始此问题。有些视图相对不受影响。对于每一次页面加载,页面的相同元素都会受到影响,即固定复制意味着页面上的50个元素中,每次固定的20个元素都会受到影响

我想我必须定位和膨胀WebView是一种不会干扰其他元素的方式

Webview或ads是片段根布局关闭之前的最后一个元素

有人找到了解决此类问题的方法吗?

通过以下方法解决:

android:layerType=“software”
android:layerType=“software”


只需将其添加到
,它将修复加载横幅广告时背景图像变黑的问题

加载的每个广告或特定广告都会出现这种情况吗?所有横幅广告,无论内容如何,您的代码看起来都不错。我看到它发生在某些广告(高图形)上,而不是普通广告上。你能试试自适应横幅,看看我是否在admob论坛上分享了你的帖子-谢谢Amod。我忘记了谷歌这个最活跃的社区。我在最新的webview版本上看到三星Tab a出现了这种情况,但只适用于某些广告。将渲染类型更改为软件可以修复闪烁,但会导致广告只显示一个黑色方块。
 private fun inflateAds() {
        supportFragmentManager
            .beginTransaction()
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .add(R.id.adStub, AdBFiller())
            .commit()
    }