2012-06-13 30 views
6

我在main.xml TitlePageIndicator和ViewPager中,我想在RelativeLayout的底部添加admob(直接放入LinearLayout)。我怎样才能做到这一点?动态添加视图到RelativeLayout的底部

当我启动它时,日志中没有提及错误(因为没有放置admob的地方),但admob是隐形的,我看不见它。 (看起来像admob是在屏幕之外,因为我试图设置特定的大小ViewPager和它的作品完美) 我不想为ViewPager设置特定的大小(因为不同的屏幕尺寸) 谢谢。

我的main.xml是:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <com.viewpagerindicator.TitlePageIndicator 
     android:id="@+id/indicator" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true"/> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/indicator"/> 
    <LinearLayout 
     android:id="@+id/for_ads" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/viewpager"/> 
</RelativeLayout> 

UPD。 解决 我用这个answer和它的工作非常适合我

回答

18

首先,你的RelativeLayout如果你想引用它需要一个ID:

RelativeLayout rLayout = (RelativeLayout)findViewById(R.id.yourRelativeId); 

然后创建一些的LayoutParams的对象(在这种情况下,您的AdMob广告查看),告诉它本身对齐的底部(不是对准任何其他意见,这种方式不是推离屏或移动由其他视图):

RelativeLayout.LayoutParams rLParams = 
    new RelativeLayout.LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
    rLParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1); 

接下来,添加对哟的看法UR你的LayoutParams的RelativeLayout:

rLayout.addView(yourAdView, rLParams); 
在这种情况下
+1

,AdMob广告覆盖了我的其他UI对象 –

+0

感谢答案,我解决了这个:) –

+0

然后,如果你希望它是低于另一种观点认为,只要做:rLParams。 addRule(RelativeLayout.BELOW,viewtoBeBelow.getId());但是,如果下面的视图延伸到底部,您将无法看到adview,这意味着要代替BELOW,您必须更改要在adview之上放置的视图的LayoutParams:addRule (RelativeLayout.ABOVE,yourAdView.getId());并确保你有一个用setID(someInteger)为adview设置的ID;或者它将无法放置相对于它的视图。 – Guardanis

相关问题