1

У меня есть ViewPager с PagerTitleStrip, который имеет MATCH_PARENT высота. Страницы имеют только текст, но некоторые страницы имеют вертикальную прокрутку, потому что текст очень длинный.Как разместить баннер AdMob под видом с высотой MATCH_PARENT?

Теперь я пытаюсь найти лучшую стратегию для размещения баннера AdMob в нижней части моего макета. Это та ситуация: - Если я ставлю ниже ViewPager, баннер не виден, потому что ViewPager имеет MATCH_PARENT. - Если я положил в нижней части макета, то ViewPager прокручивает содержимое за баннером, и это неправильное поведение.

Можно ли ввести правило, которое заставляет баннер оставаться ниже ViewPager, но без создания прокручиваемого содержимого ViewPager, чтобы быть из-за знамена?

Спасибо

Так я пытаюсь добавить баннер:

RelativeLayout.LayoutParams adsParams = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     adsParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
     adsParams.addRule(RelativeLayout.BELOW,R.id.pager); 
     if (AdManager.getInstance().getAdView()!=null){ 
      View view = AdManager.getInstance().getAdView(); 
      mainLayout.addView(view, adsParams); 
     } 

Моя раскладка:

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <!-- The main content view --> 
    <RelativeLayout 
     android:id="@+id/main_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.v4.view.ViewPager 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/pager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <android.support.v4.view.PagerTitleStrip 
       android:id="@+id/pager_title_strip" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="top" 
       android:paddingTop="4dp" 
       android:paddingBottom="4dp" 
       style="@style/CustomPagerTitleStrip"/> 
     </android.support.v4.view.ViewPager> 
    </RelativeLayout> 
    <!-- The navigation drawer --> 
    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/drawer_header" 
     app:menu="@menu/drawer_menu" 
     style="@style/NavigationDrawerStyle"/> 
</android.support.v4.widget.DrawerLayout> 
+0

Не можете вы просто обернуть 'ViewPager' и знамя в макете, скажем,' LinearLayout', и складывать их друг на друга? Таким образом, у вас не будет перекрытия содержимого. –

ответ

2

в макете XML файл Рез добавить этот атрибут android:layout_above в MATCH_PARENT Посмотреть. и в его значении укажите идентификатор рекламного баннера. Теперь ваш взгляд match_parent будет выше рекламный баннер

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_above="@+id/temp" 
     android:layout_height="match_parent"></RelativeLayout> 
    <View 
     android:id="@+id/temp" 
     android:layout_alignParentBottom="true" 
     android:layout_width="match_parent" 
     android:layout_height="60dp"/> 

</RelativeLayout> 
+0

Почему работает, если я поставил выше и не работает, если я ставлю ниже на баннер? это запутывает – NullPointerException

+0

Layout_above означает, что это совпадение должно быть указано выше определенного рекламного баннера. –

+0

Да, но layout_below является обратным, и он должен работать, если я надену вид баннера, который является представлением, которое должно быть ниже другого. Не работает. Зачем? – NullPointerException