2015-06-23 10 views
30

Al momento lo AdView viene visualizzato all'interno dello ViewPager quindi blocca il contenuto nell'app. Come posso ottenere che lo AdView appaia sotto lo ViewPager e non all'interno.Come ottenere Adview sotto Viewpager in CoordinatorLayout

Ho provato a inserire lo AdView in un RelativeLayout sotto lo ViewPager ma il AdView non viene visualizzato.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.candyx.testapp.Activity"> 

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/main_button_background"> 

     <android.support.v7.widget.Toolbar 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways"/> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMode="scrollable" 
      app:tabGravity="fill" 
      app:tabIndicatorColor="@color/colorTabIndicator" 
      app:tabIndicatorHeight="3dp"/> 

    </android.support.design.widget.AppBarLayout> 


    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     ads:adSize="BANNER" 
     ads:adUnitId="@string/banner_ad_unit_id" 
     android:layout_gravity="center|bottom"/> 

</android.support.design.widget.CoordinatorLayout> 

</LinearLayout> 

risposta

77

È possibile aggiungere ViewPager e AdView all'interno RelativeLayout e specificare android:layout_above="@+id/adView" proprietà ViewPager in modo che adView non blocchi il ViewPager contenuti.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.candyx.testapp.Activity"> 

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/main_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/adView"> 

     <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/main_button_background"> 

      <android.support.v7.widget.Toolbar 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_scrollFlags="scroll|enterAlways"/> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:tabMode="scrollable" 
       app:tabGravity="fill" 
       app:tabIndicatorColor="@color/colorTabIndicator" 
       app:tabIndicatorHeight="3dp"/> 

     </android.support.design.widget.AppBarLayout> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/viewPager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

    </android.support.design.widget.CoordinatorLayout> 

    <com.google.android.gms.ads.AdView 
     android:id="@id/adView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     ads:adSize="BANNER" 
     ads:adUnitId="@string/banner_ad_unit_id" 
     android:layout_gravity="center|bottom" 
     android:layout_alignParentBottom="true"/> 

</RelativeLayout> 
+1

Il problema con questo è che ora spinge il contenuto verso l'alto e sotto la barra degli strumenti sul banner dimensione quindi penso che sia il nuovo layout di coordinatore che non vuole giocare insieme. Non lo voglio veramente annidato all'interno del viewpager ma immagino che solo la soluzione finora sia quella di mettere la dimensione del banner nella parte inferiore del mio recyclerview –

+0

Controllare Modifica ..... –

+0

No, è ancora all'interno del viewpager in basso ma va bene male basta usare il padding inferiore sul recyclerview in modo che quando si scorre verso il basso ci sia uno spazio vuoto per l'annuncio –

3

Mettere ViewPager e ADView all'interno di un altro LinearLayout come di seguito:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
    <android.support.v4.view.ViewPager 
      android:id="@+id/viewPager" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      android:layout_weight="1"/> 

     <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" 
      ads:adSize="BANNER" 
      ads:adUnitId="@string/banner_ad_unit_id" 
      android:layout_gravity="center|bottom" 
      /> 
    </LinearLayout> 
+0

Si sta ancora mostrando all'interno del viewpager –

+0

Ho modificato la mia risposta. Ho dimenticato di parlare di LinearLayout in precedenza. – Audumbar

+0

Come se nulla mostra che tutto è vuoto –

1

questo ha funzionato per me: appena messo dentro la ViewPager dell'app: layout_behavior:

<android.support.v4.view.ViewPager 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
0

come i test sul dispositivo vero e proprio questo è lavoro per me: Fix Altezza declear sui bambini inferiore `

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/htab_maincontent" 
    android:layout_width="match_parent" 
    android:layout_above="@+id/PanelView" 
    android:layout_height="match_parent"> 
    <!--android:fitsSystemWindows="false">--> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/htab_appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/htab_collapse_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="256dp" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/htab_header" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@drawable/title_panel_main" 
       android:fitsSystemWindows="true" 
       android:scaleType="centerCrop" 
       app:layout_collapseMode="parallax" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/htab_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="104dp" 
       android:gravity="top" 
       android:minHeight="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:titleMarginTop="13dp" /> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/htab_tabs" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_gravity="bottom" 
       app:tabIndicatorColor="@android:color/white" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 


    <android.support.v4.view.ViewPager 
     android:id="@+id/tab_viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
</android.support.design.widget.CoordinatorLayout> 


<LinearLayout 
    android:id="@+id/PanelView" 
    android:layout_width="match_parent" 
    android:layout_height="70dp" 
    android:orientation="horizontal" 
    android:padding="7dp" 
    android:layout_alignParentBottom="true" 
    android:visibility="visible"> 



    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="10dp" 
     /> 
</LinearLayout> 
</RelativeLayout>` 

Speranza Guida È