AdMob находится в середине в макете ящика - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь отобразить admob в макете ящика, но он всегда находится посередине экрана и перекрывает содержимое, а не внизу.

Вот как это выглядит:

image

и это код моего макета:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_wallpaper_full"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_wallpaper_full"
        app:menu="@menu/activity_wallpaper_full_drawer" />

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/ad_unit_id_wallpaper_full_activity">
    </com.google.android.gms.ads.AdView>

</android.support.v4.widget.DrawerLayout>

1 Ответ

0 голосов
/ 08 января 2019

Если вы хотите, чтобы навигационный ящик скрывал рекламу (когда ящик открыт), то вам следует переместить тег <AdView> внутри макета <include> (т.е. поместить его в файл макета app_bar_wallpaper_full.xml) .

Правильный способ размещения рекламы в нижней части экрана будет зависеть от того, какой тип макета вы используете в app_bar_wallpaper_full.xml.

Если вы хотите, чтобы объявление всегда было полностью видимым, и чтобы окно навигации было остановлено до того, как оно закроет объявление, то вам нужно поместить и DrawerLayout, и AdView внутри LinearLayout.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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:fitsSystemWindows="true"
    android:orientation="vertical">

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:fitsSystemWindows="true"
        tools:openDrawer="start">

        <include
            layout="@layout/app_bar_wallpaper_full"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

        <android.support.design.widget.NavigationView
            android:id="@+id/nav_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:fitsSystemWindows="true"
            app:headerLayout="@layout/nav_header_wallpaper_full"
            app:menu="@menu/activity_wallpaper_full_drawer"/>

    </android.support.v4.widget.DrawerLayout>

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/ad_unit_id_wallpaper_full_activity"
        xmlns:ads="http://schemas.android.com/apk/res-auto"/>

</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...