2012-06-13 15 views
6

Ho in main.xml TitlePageIndicator e ViewPager e desidero aggiungere admob (direttamente in LinearLayout) nella parte inferiore di RelativeLayout. Come posso fare questo?Aggiungere dinamicamente alla fine di RelativeLayout

Quando lo avvio, il log non dice nulla sugli errori (poiché non c'è spazio per mettere admob), ma admob è invisibile, non riesco a vederlo. (sembra che admob sia fuori dallo schermo perché ho provato ad impostare dimensioni specifiche su ViewPager e funziona perfettamente) Non voglio impostare dimensioni specifiche su ViewPager (a causa delle diverse dimensioni dello schermo) Grazie.

mio 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. risolto ho usato questo answer e funziona perfetto per me

risposta

18

In primo luogo, la vostra RelativeLayout ha bisogno di un ID se si vuole fare riferimento a esso:

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

Poi creare alcuni LayoutParams per l'oggetto (in questo caso, il vostro AdMob ADView) che raccontano a allinearsi verso il basso (e non allinearsi ad altri punti di vista, in questo modo non viene spinto fuori dallo schermo o spostata dalle altre viste):

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

Successivamente, aggiungere la vista di te ur RelativeLayout con i tuoi LayoutParams:

rLayout.addView(yourAdView, rLParams); 
+1

in questo caso, AdMob copre la mia altra UI oggetti –

+0

grazie per la risposta, ho risolto questo :) –

+0

Poi, se si vuole che sia sotto altro punto di vista, basta fare: rLParams. addRule (RelativeLayout.BELOW, viewtoBeBelow.getId()); Ma se la vista da sotto si estende verso il basso non sarai in grado di vedere l'adview, il che significa che al posto del SOTTO, dovrai modificare i LayoutParam della vista che vuoi essere sopra l'adview con: addRule (RelativeLayout.ABOVE, yourAdView.getId()); E assicurati di avere un ID impostato per l'adview con setID (someInteger); o non sarà in grado di posizionare la vista ad esso relativa. – Guardanis

Problemi correlati