DrawerLayout с объявлением Admob
Я использую Navigation-Drawer в своем приложении. Так что я создал одно действие с layout_drawer layout.Я использую фрагменты для изменения основных областей содержимого (@+ id/content_frame), когда пользователь выбирает пункт меню из меню навигационного ящика. Теперь моя проблема заключается в том, что я хочу показывать объявление admob на каждом экране. Я мог использовать фрагменты для инициализации макета объявления и раздувания его в FrameLayout, но я думаю, что это не очень хороший вариант. Иначе их можно инициализировать рекламу, используя эту единственную активность
navigation_drawer.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/side_navigation_background"
android:cacheColorHint="#00000000"
android:choiceMode="singleChoice"
android:divider="@color/side_navigation_list_divider_color"
android:dividerHeight="1dp" />
</android.support.v4.widget.DrawerLayout>
Ответы
Ответ 1
Вы можете использовать любой макет внутри DrawerLayout. В показанном ниже .xml вы можете переключать фрагменты в одиночном действии (используя RelativeLayout) с admob ad в нижней части этого действия.
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:id="@+id/relative_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/fragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/adView"
android:background="@color/background" />
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adSize="SMART_BANNER"
ads:adUnitId="AD_UNIT_IT"
ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
android:gravity="bottom" />
</RelativeLayout>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/white"
android:choiceMode="singleChoice"/>
</android.support.v4.widget.DrawerLayout>
Ответ 2
Даже если фрагмент включен в drawerlayout, adview может быть добавлен с использованием relativelayout, например
<RelativeLayout
android:id="@+id/relative_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<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_alignParentLeft="true"
android:layout_alignParentStart="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id"/>
</RelativeLayout>