2013-06-17 14 views
11

Ich benutze Navigation-Drawer in meiner Anwendung.So habe ich eine einzelne Aktivität mit navigation_drawer layout.Ich benutze Fragmente, um die wichtigsten Inhaltsbereich (@ + id/content_frame) Daten zu ändern, wenn Benutzer eine Menüoption wählt aus dem Navigation Drawer menu.Now mein Problem ist, dass ich AdMob Ad auf jedem Bildschirm zeigen möchte.Ich könnte Fragmente verwendet, um Anzeigenlayout zu initialisieren und in FrameLayout aufzublasen, aber ich denke, wäre keine gute Option.Ist ihre jede Möglichkeit, die Anzeige zu initialisieren Verwenden Sie diese einzelne Aktivität?DrawerLayout mit Admob ad

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> 

Antwort

32

Sie jedes Layout innerhalb von DrawerLayout verwenden können. In der unten angezeigten .xml können Sie Fragmente in der einzelnen Aktivität (mit RelativeLayout) mit der Admob-Anzeige am Ende dieser Aktivität wechseln.

<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> 
+1

dank Verwendung relativelayout hinzugefügt werden sehr hilfreich .. – Ahmed

0

Selbst wenn ein Fragment in einem drawerlayout enthalten ist, können adview wie

<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>