Тело объявления видно, даже если оно не загружено - PullRequest
0 голосов
/ 31 августа 2018

Я внедрил баннерную рекламу для своего приложения. Когда объявление загружено, представление переработчика остается в рабочем состоянии и не перекрывает его, а объявление не перекрывает представление переработчика. Однако, когда реклама не загружена, по-прежнему существует белый «патч», размеры которого совпадают с размерами баннера. Я хочу, чтобы этот патч не существовал в макете, если реклама не загружена, и, если реклама загружена, создайте патч, как он, и не просматривайте содержимое программы переработчика. Я знаю, что есть макет кадра для перекрытия разных видов, но приложение, насколько я вижу, нуждается в относительном макете для правильной работы.

ФАЙЛ XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fafafa"
tools:context=".Activity.MainActivity">

<include
    android:id="@+id/toolbarID"
    layout="@layout/toolbar" />


<TextView
    android:id="@+id/showWhenEmptyID"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="Add note"
    android:textSize="22sp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />


<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerViewID"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="5dp"
    android:layout_below="@id/toolbarID"
    android:layout_marginEnd="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_above="@id/adView"
    android:layout_marginStart="5dp"
    android:layout_marginTop="5dp"
    android:visibility="gone"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />


<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>

enter image description here

1 Ответ

0 голосов
/ 31 августа 2018

Попробуйте использовать режимы VISIBILITY для adView в своем Java-коде, основываясь на ответе от загрузки рекламы.

или

Просто установите видимость GONE в xml и измените ее на VISIBLE, основываясь на ответе от загрузки рекламы в ваш код Java.

В вашем xml:

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    android:visibility="gone" //SET VISIBILITY GONE
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>

А в твоей деятельности:

mAdView = findViewById(R.id.adView)
    val adRequest = AdRequest.Builder().build()
    mAdView.loadAd(adRequest)
    mAdView.adListener = object : AdListener() { //ADDED AD LISTENER
        override fun onAdLoaded() {
            super.onAdLoaded()

            adView.visibility = View.VISIBLE
        }
    }
...