2011-02-28 40 views
0

我正在使用AdWhirl在我的免费应用程序中放置广告。我希望广告出现在MapView下方和ListView上方。无论我尝试什么,我都无法让广告出现在底部以外的任何地方。目前,listView在XML中膨胀,但AdWhirlView必须在Java代码中创建。由于我在垂直方向的LinearLayout上调用addView(adWhirlView),因此广告始终显示在底部。我如何确定广告应放置在哪里?Android布局,如何在调用addView前指定元素的顺序

这里是我的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
      android:orientation="vertical" 
      android:layout_width="fill_parent"    
      android:layout_height="fill_parent"   
      android:id="@+id/layout_main" 
      > 
      <RelativeLayout 
       android:layout_width="fill_parent" 
       android:layout_height="0px" 
       android:layout_weight="1">    


      <com.google.android.maps.MapView 
       .... 

     </RelativeLayout>     


      <ListView 
      android:id="@+id/listView"   
      android:layout_width="fill_parent" 
      android:layout_height="0px" 
      android:layout_weight="1"/> 


</LinearLayout> 

回答

0

试试下面的代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
     android:orientation="vertical" 
     android:layout_width="fill_parent"    
     android:layout_height="fill_parent"   
     android:id="@+id/layout_main" 
     > 
     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="0px" 
      android:layout_weight="1">    


     <com.google.android.maps.MapView 
      .... 

    </RelativeLayout>     

    <LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:id="@+id/layout_ad" 
    android:layout_height="wrap_content" /> 
     <ListView 
     android:id="@+id/listView"   
     android:layout_width="fill_parent" 
     android:layout_height="0px" 
     android:layout_weight="1"/> 
</LinearLayout> 

然后用使用下面的代码

AdManager.setTestDevices(new String[] { AdManager.TEST_EMULATOR }); 
LinearLayout layout = (LinearLayout) findViewById(R.id.layout_ad); 
AdWhirlLayout adWhirlLayout = new AdWhirlLayout(this, "Key"); 
Display d = this.getWindowManager().getDefaultDisplay(); 
RelativeLayout.LayoutParams adWhirlLayoutParams = new RelativeLayout.LayoutParams(d.getWidth(), 52); 
layout.addView(adWhirlLayout, adWhirlLayoutParams); 
layout.invalidate(); 

这样,你的列表视图将总是AdWhirl广告后,如果没有要显示的广告,那么listview就会在地图后面出现

+0

完美!最后,我失踪了android:layout_height =“wrap_content” –