2012-06-13 32 views
6

के नीचे दृश्य जोड़ें, मेरे पास main.xml TitlePageIndicator और ViewPager में है, और मैं RelativeLayout के नीचे admob (सीधे LinearLayout में) जोड़ना चाहता हूं। मैं यह कैसे कर सकता हूँ?गतिशील रूप से RelativeLayout

जब मैं इसे लॉन्च करता हूं, तो लॉग त्रुटियों के बारे में कुछ भी नहीं कहता है (क्योंकि admob डालने के लिए कोई जगह नहीं है), लेकिन admob अदृश्य है, मैं इसे देख नहीं सकता। (ऐसा लगता है कि admob स्क्रीन के बाहर है क्योंकि मैंने व्यूपेजर को विशिष्ट आकार सेट करने का प्रयास किया है और यह सही काम करता है) मैं विशिष्ट आकार को 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> 

युपीडी। हल मैं इस answer इस्तेमाल किया और यह मेरे लिए एकदम सही काम करता है

उत्तर

18

पहले, अपने RelativeLayout एक आईडी की जरूरत है अगर आप इसे संदर्भ लेना चाहते हैं:

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

फिर वस्तु के लिए कुछ LayoutParams बनाने (इस मामले में, अपने AdMob adview) है कि यह नीचे करने के लिए खुद को संरेखित (और नहीं किसी भी दृश्य को संरेखित करने के लिए कहता हूं, इस तरह से यह ऑफ स्क्रीन अन्य देखा गया धक्का दिया या ले जाया नहीं है):

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

इसके बाद, जोड़ने यो के लिए दृश्य अपने LayoutParams साथ उर RelativeLayout:

rLayout.addView(yourAdView, rLParams); 
इस मामले में
+1

, admob मेरे अन्य यूआई को शामिल किया गया जवाब के लिए –

+0

धन्यवाद वस्तुओं, मैं तो यह :) –

+0

हल यदि आप किसी अन्य दृश्य के नीचे होना चाहता हूँ, बस कार्य करें: rLParams। addRule (RelativeLayout.BELOW, viewtoBeBelow.getId()); लेकिन यदि नीचे दिया गया दृश्य नीचे तक फैला हुआ है तो आप विज्ञापनदृश्य नहीं देख पाएंगे, जिसका मतलब है कि नीचे के बजाय, आपको उस दृश्य के लेआउट पैराम को बदलना होगा, जिसके साथ आप विज्ञापन के ऊपर होना चाहते हैं: addRule (RelativeLayout.ABOVE, yourAdView.getId()); और सुनिश्चित करें कि आपके पास setID (someInteger) के साथ विज्ञापन के लिए एक आईडी सेट है; या यह इसके सापेक्ष दृश्य को रखने में सक्षम नहीं होगा। – Guardanis

संबंधित मुद्दे