Admob показывает только сверху XML - PullRequest
0 голосов
/ 16 апреля 2020

Я пытался интегрировать AdMob в свой XML, но он показывает только рекламу вверху приложения. Изображение

В Android Studio отображается правильное местоположение: Android Studio

My XML:

<FrameLayout xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/overlayContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/root"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:ignore="UselessParent">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary">

            <TextView
                android:id="@+id/bVersion"
                style="@style/FakeSpinner"
                android:layout_width="72dp"
                android:layout_height="match_parent"
                android:layout_gravity="end"
                android:gravity="center"
                android:textStyle="bold"
                tools:text="VERSNM" />

            <my.app.base.widget.NavFrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <my.app.base.widget.GotoButton
                    android:id="@+id/bGoto"
                    style="?actionButtonStyle"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginStart="@dimen/nav_goto_side_margin"
                    android:layout_marginEnd="@dimen/nav_goto_side_margin"
                    android:fontFamily="sans-serif-medium"
                    android:includeFontPadding="false"
                    android:paddingStart="0dp"
                    android:paddingEnd="0dp"
                    android:textSize="16sp"
                    tools:text="Long Name Of Book 123" />

                <ImageButton
                    android:id="@+id/bLeft"
                    style="?actionButtonStyle"
                    android:layout_width="@dimen/nav_prevnext_width"
                    android:layout_height="match_parent"
                    android:layout_gravity="start"
                    android:contentDescription="@string/desc_previous_chapter"
                    android:scaleType="center"
                    android:src="@drawable/ic_nav_start_light" />

                <ImageButton
                    android:id="@+id/bRight"
                    style="?actionButtonStyle"
                    android:layout_width="@dimen/nav_prevnext_width"
                    android:layout_height="match_parent"
                    android:layout_gravity="end"
                    android:contentDescription="@string/desc_next_chapter"
                    android:padding="16dp"
                    android:scaleType="center"
                    android:src="@drawable/ic_nav_end_light" />
            </my.app.base.widget.NavFrameLayout>

        </androidx.appcompat.widget.Toolbar>

        <my.app.base.widget.TwofingerLinearLayout
            android:id="@+id/splitRoot"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="vertical"
            tools:ignore="NestedWeights">

            <my.app.base.verses.EmptyableRecyclerView
                android:id="@+id/lsSplitView0"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:clipToPadding="false"
                android:paddingStart="@dimen/text_side_padding"
                android:paddingEnd="@dimen/text_side_padding"
                android:scrollbarStyle="outsideOverlay"
                android:scrollbars="vertical" >

            </my.app.base.verses.EmptyableRecyclerView>

            <my.app.base.widget.LabeledSplitHandleButton
                android:id="@+id/splitHandleButton"
                android:layout_width="match_parent"
                android:layout_height="@dimen/split_handle_thickness"
                android:background="@null"
                android:visibility="gone" />

            <my.app.base.verses.EmptyableRecyclerView
                android:id="@+id/lsSplitView1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:clipToPadding="false"
                android:paddingStart="@dimen/text_side_padding"
                android:paddingEnd="@dimen/text_side_padding"
                android:scrollbarStyle="outsideOverlay"
                android:scrollbars="vertical" />

        </my.app.base.widget.TwofingerLinearLayout>

        <com.google.android.gms.ads.AdView
            android:id="@+id/adView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            ads:adSize="FULL_BANNER"
            ads:adUnitId="AD-UNIT-ID">
        </com.google.android.gms.ads.AdView>

    </LinearLayout>

    <my.app.base.widget.Floater
        android:id="@+id/floater"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="8dp"
        android:visibility="gone" />

</FrameLayout>

Он появляется только вверху в запущенном приложении, уже в Android Studio, он появляется в нужном мне месте. Как мне оставить это объявление AdMob в конце, как в Android Studio?

1 Ответ

0 голосов
/ 17 апреля 2020

при использовании FrameLayout ViewGroup в android необходимо указать layout_gravity ее дочерних элементов. если нет, структура кадра перемещает дочерний вид в Top , который является гравитацией по умолчанию для детей в FrameLayout. Чтобы исправить это, все, что вам нужно сделать, это установить layout_gravity из LinearLayout в bottom точно так же, как *, поскольку LinearLayout является родителем admob, добавьте это android:layout_gravity = "bottom" в LinearLayout сразу после android:orientation = "vertical" или в любом другом месте, где вы хотите, чтобы он входил в LinearLayout ViewGroup.

...