2012-06-13 21 views
6

Mam w main.xml TitlePageIndicator i ViewPager, i chcę dodać admob (prawo do LinearLayout) na dole RelativeLayout. Jak mogę to zrobić?Dynamicznie dodaj widok na spód RelativeLayout

Po uruchomieniu, dziennik nie mówi nic o błędach (ponieważ nie ma miejsca na umieszczenie admoba), ale admob jest niewidoczny, nie widzę go. (wygląda na to, że admob jest poza ekranem, ponieważ próbowałem ustawić określone rozmiary na ViewPager i działa idealnie) Nie chcę ustawiać określonych rozmiarów na ViewPager (z powodu różnych rozmiarów ekranu). Dzięki.

Moja main.xml jest:

<?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. rozwiązany użyłem tego answer i działa dla mnie idealny

Odpowiedz

18

Po pierwsze, RelativeLayout potrzebuje identyfikator, jeśli chcesz go odwołać:

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

Następnie należy utworzyć kilka LayoutParams dla obiektu (w tym przypadku, Twój adview AdMob), które mówią, że w celu dostosowania się do dołu (a nie dostosowanie się do wszelkich innych poglądów, w ten sposób nie jest zepchnięty ekranie lub przeniesione przez innych widoków):

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

Następnie dodaj widok na yo ur RelativeLayout ze swoimi LayoutParams:

rLayout.addView(yourAdView, rLParams); 
+1

w tym przypadku AdMob zajmuje się moją drugą UI obiektów –

+0

dzięki za odpowiedź, mam rozwiązać ten :) –

+0

Następnie, jeśli ma to być poniżej innego widoku, po prostu zrobić: rLParams. addRule (RelativeLayout.BELOW, viewtoBeBelow.getId()); Ale jeśli widok poniżej znajduje się na dole, nie będziesz w stanie zobaczyć reklamy, co oznacza, że ​​zamiast PONIŻEJ będziesz musiał zmienić LayoutParams widoku, który chcesz widzieć nad adview: addRule (RelativeLayout.ABOVE, yourAdView.getId()); I upewnij się, że masz zestaw ID dla adview z setID (someInteger); lub nie będzie w stanie umieścić widoku w stosunku do niego. – Guardanis

Powiązane problemy