Баннер AdMob внизу - Преобразование Linearlayout в RelativeLayout

Я довольно новичок в Android. Я пытаюсь добавить баннер AdMob в нижней части приложения, на самом деле в двух действиях. Я думаю, что Linearlayout не правильный способ сделать это.

  1. Поэтому, пожалуйста, помогите мне конвертировать Linearlayout в RelativeLayout.

Кроме того, во время работы приложения отображается только файл activity_entry.xml sample-google-banner. Баннер view_home.xml просто показывает статическое пустое пространство.

  1. А как мне сделать баннер умным? Я хочу, чтобы он отображался только тогда, когда будет отображаться баннер, а не как статическое пустое пространство.

activity_entry.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:ads="http://schemas.android.com/apk/res-auto"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical">

<include layout="@layout/view_toolbar"/>

<fragment
    android:id="@+id/entry_fragment"
    class="net.etuldan.sparss.fragment.EntryFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111"
    android:layout_gravity="center_horizontal">
</com.google.android.gms.ads.AdView>

view_home.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:showIn="@layout/activity_home"
android:weightSum="1">

<include layout="@layout/view_toolbar"/>

<fragment
    android:id="@+id/entries_list_fragment"
    android:name="net.etuldan.sparss.fragment.EntriesListFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111"
    android:layout_gravity="center_horizontal">
</com.google.android.gms.ads.AdView>

1 ответ

Вот несколько советов, как получить то, что вы хотите:

Посмотрите здесь, чтобы сделать это в относительной разметке: adMob | Умный баннер внизу?

в основном, ключевой код в том, что вы должны иметь

android:layout_alignParentBottom="true"

Вы можете вложить свой макет, если он помогает... или нет.

Вторая часть: рассмотрите возможность использования adListener и использования onReceiveAd() и onFailedToReceiveAd() для динамического форматирования макета.

Посмотрите здесь некоторые моменты на adListener:

Как узнать, было ли загружено объявление AdMob

Другие вопросы по тегам