2012-03-19 2 views
1

У меня есть TabLayout, у которого есть ListView, чтобы показать как намерение. Я хотел бы добавить баннер admob в этот макет, но он переместит ListActivity по последнему элементу списка, который я определил ранее. Как я могу заставить это работать?Admob, показывающий над списком в макете вкладок

проводок теперь main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
android:id="@android:id/tabhost" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="top" 
    android:orientation="vertical" 
    android:padding="5dp" > 

    <TabWidget 
     android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
    <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp" > 

    </FrameLayout> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:gravity="bottom" > 

<com.google.ads.AdView 
      android:id="@+id/adView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 

      ads:adSize="BANNER" 
      ads:adUnitId="a14f67193b8a3e1" 
      ads:loadAdOnCreate="true" 
      ads:testDevices="TEST_EMULATOR, 3433B134225900EC" > 

     </com.google.ads.AdView> 
</LinearLayout> 

ответ

7

Чтобы получить AdView взяться за это собственное пространство, а не сидеть на вершине другого контента, я обычно использую RelativeLayout и липкость android:layout_alignParentBottom="true" на мой AdView и android:layout_above="@+id/adView" на мой контент верхнего уровня.

+0

Чтобы более точно ответить на ваш вопрос, AdView зависает в нижней части списка, поскольку у вас есть два элемента LinearLayout. Android объединяет их друг с другом внутри большинства основных объектов ViewParent, поэтому объявление плавает над списком, а не удерживает пространство. Подход Eric RelativeLayout будет работать, но вы можете добиться такого же эффекта, поставив AdView в первый LinearLayout, а затем поместив FrameLayout в ScrollView, чтобы сделать этот прокручиваемый элемент. – Hounshell

+0

, который разрешил мою проблему. большое спасибо! – anhnt