8

У меня есть Android приложений с ViewPager реализована следующим образом:AdMob AdView и ViewPager?

http://www.youtube.com/watch?v=C6_1KznO95A

Я не знаю, как реализовать AdView ниже ViewPager. Я попытался поместить AdView под ViewPager программно и в xml. Ошибок нет, но объявления не отображаются.

Мой XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_alignParentBottom="top" 
    android:layout_height="0dp" 
    android:layout_weight="1"/> 

<com.google.ads.AdView 
    android:id="@+id/ad" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 
    android:layout_below="@+id/pager" 
    ads:adSize="BANNER" 
    ads:adUnitId="@string/admob_publisher_id" 
    ads:loadAdOnCreate="true" > 
</com.google.ads.AdView> 

+0

, пожалуйста, разместите свой xml-макет, который должен на самом деле наступить. –

ответ

10

ОК, у вас есть несколько проблем.

  1. Ориентация применима только к LinearLayout.
  2. layout_alignParentBottom необходимо логическое значение не «сверху»
  3. layout_weight актуальна только для LinearLayout ни RelativeLayout

У вас есть 2 варианта. Используйте RelativeLayout, но сначала определите AdView, указав, что ViewPager указан выше, или используйте LinearLayout и используйте ViewPager для неиспользуемого пространства, используя layout_weight.

Как RelativeLayout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
> 

<com.google.ads.AdView 
    android:id="@+id/ad" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    ads:adSize="BANNER" 
    ads:adUnitId="@string/admob_publisher_id" 
    ads:loadAdOnCreate="true" /> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_alignParentTop="true" 
    android:layout_above="@+id/ad" 
    /> 

</RelativeLayout> 

или как LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1"/> 

<com.google.ads.AdView 
    android:id="@+id/ad" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    ads:adSize="BANNER" 
    ads:adUnitId="@string/admob_publisher_id" 
    ads:loadAdOnCreate="true" /> 

</LinearLayout> 

Лично я бы с LinearLayout он чувствует себя проще.

+0

Это должно быть отмечено как правильный ответ. – sublimental

1

Это сработало для меня.

AdView adView = (AdView) findViewById(R.id.ad); 
    adView.bringToFront(); 
+0

Работал для меня :) – prateek31

Смежные вопросы