0

Je suis en train de développer une application dans laquelle certaines données sont chargées de Firebase et est affiché dans le RecyclerView.Comment placer AdView sous RecyclerView? S'il vous plaît voir les détails

Ce que je veux est que je veux montrer l'AdView en dessous du RecyclerView et que je l'ai fait ceci:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    android:id="@+id/recyclerView_parentLayout" 
    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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.abc.xyz.MainActivity" 
    tools:showIn="@layout/app_bar_main" 
    xmlns:ads="http://schemas.android.com/apk/res-auto"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clipToPadding="false" 
     android:scrollbars="vertical" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.v7.widget.CardView 
     android:id="@+id/card_ads" 
     android:layout_below="@id/recycler_view" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="10dp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:contentPaddingBottom="2dp" 
     app:cardElevation="2dp" 
     app:cardUseCompatPadding="true" > 

      <com.google.android.gms.ads.NativeExpressAdView 
       android:id="@+id/adView" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_centerInParent="true" 
       android:layout_alignParentBottom="true" 
       ads:adUnitId="ca-app-pub-***********/*********" 
       ads:adSize="280x80"> 
      </com.google.android.gms.ads.NativeExpressAdView> 

    </android.support.v7.widget.CardView> 

</RelativeLayout> 

Le problème est que cette disposition montre aucune annonce au fond et le recyclerview couvre toute la zone et les annonces sont couvertes par elle.

est ici la capture d'écran (le recyclerview a défilée à la dernière et il n'y a pas annonce là-bas):

enter image description here

S'il vous plaît laissez-moi savoir comment puis-je placer les annonces juste en dessous du RecyclerView ou lorsque la fins de recyclage.

Répondre

1

Essayez de mettre votre RecyclerView à l'intérieur d'autres mise en page, ou tout simplement mis layout_above = « @ id/card_ads »

Je pense que le principal problème est que vous définissez dans card_ads layout_below, mais pas dire recyclerview qu'il devrait être plus les card_ads

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/recyclerView_parentLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.abc.xyz.MainActivity" 
    tools:showIn="@layout/app_bar_main"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="card_ads" 
     android:orientation="vertical"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recycler_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:clipToPadding="false" 
      android:scrollbars="vertical" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
    </LinearLayout> 

    <android.support.v7.widget.CardView 
     android:id="@+id/card_ads" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/recycler_view" 
     android:layout_marginBottom="10dp" 
     android:layout_marginTop="10dp" 
     app:cardElevation="2dp" 
     app:cardUseCompatPadding="true" 
     app:contentPaddingBottom="2dp"> 

     <com.google.android.gms.ads.NativeExpressAdView 
      android:id="@+id/adView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_alignParentBottom="true" 
      android:layout_centerInParent="true" 
      ads:adSize="280x80" 
      ads:adUnitId="ca-app-pub-***********/*********"> 
     </com.google.android.gms.ads.NativeExpressAdView> 

    </android.support.v7.widget.CardView> 

</RelativeLayout> 

J'ai ajouter Admob sur mon App, vous pouvez vérifier à Github

Edit:

je mets parent match, voir si cela fonctionne

<android.support.v7.widget.RecyclerView 
      android:id="@+id/recycler_view" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:clipToPadding="false" 
      android:scrollbars="vertical" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
+0

Cela n'a pas résolu le problème. –

+0

Strange, montrez-nous une capture d'écran si c'est possible. Êtes-vous sûr que recyclerview couvre les publicités? – Adley

+0

s'il vous plaît voir la capture d'écran –

0
Add framelayout as a main layout .Try this code .Put your adView insted of button . 
<?xml version="1.0" encoding="utf-8"?> 

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/recyclerView_parentLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp" 


    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recycler_view" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:clipToPadding="false" 
      android:scrollbars="vertical" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

     <android.support.v7.widget.CardView 
      android:id="@+id/card_ads" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/recycler_view" 
      android:layout_marginBottom="10dp" 
      android:layout_marginTop="10dp" 
      app:cardElevation="2dp" 
      app:cardUseCompatPadding="true" 
      app:contentPaddingBottom="2dp"> 

      <com.google.android.gms.ads.NativeExpressAdView 
       android:id="@+id/adView" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_alignParentBottom="true" 
       android:layout_centerInParent="true" 
       ads:adSize="280x80" 
       ads:adUnitId="ca-app-pub-***********/*********"> 
      </com.google.android.gms.ads.NativeExpressAdView> 

     </android.support.v7.widget.CardView> 
    </LinearLayout> 
    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom"/> 
</FrameLayout> 
+0

Problème non résolu. –

+0

Quel est le problème avec cela? Pouvez-vous s'il vous plaît partager une capture d'écran? –

+0

s'il vous plaît voir la capture d'écran. –

0

Vous devez utiliser LinearLayout au lieu de RelativeLayout. Dans LinearLayout mettre de l'annonce au bas de l'écran et laissez-le occuper son espace et régler layout_weight à votre RecyclerView.

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    ... > 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     ... /> 

    <android.support.v7.widget.CardView 
     android:id="@+id/card_ads" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     ... > 

     <com.google.android.gms.ads.NativeExpressAdView 
      android:id="@+id/adView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      ... /> 

    </android.support.v7.widget.CardView> 

</LinearLayout> 

Et une chose, ne le font pas mis layout_height de AdView-match_parent, utilisez wrap_content à la place.

0

Ajouter à votre XML

<android.support.v7.widget.RecyclerView 
    android:id="@+id/recyclerView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/adView" 
    android:scrollbars="vertical"> 
</android.support.v7.widget.RecyclerView>