प्रोग्रामेटिक रूप से अवरोध स्थापित करने का विचार थकाऊ हो सकता है। नीचे दिया गया यह समाधान किसी भी लेआउट के लिए काम करेगा, चाहे बाधा, रैखिक, आदि। सबसे अच्छा तरीका एक प्लेसहोल्डर सेट करना होगा (फ्रेमलेयआउट उचित बाधाओं के साथ (या रैखिक में अन्य लेआउट में उचित स्थान) जहां आप उस प्रोग्रामर द्वारा बनाए गए दृश्य की उम्मीद करेंगे। रखने के लिए।
आपको बस इतना करने की ज़रूरत है कि दृश्य को प्रोग्रामेटिक रूप से फुलाएं और यह एक बच्चे के रूप में फ़्रेमलैटआउट का उपयोग करके addChild()विधि है। फिर रनटाइम के दौरान आपके विचार को फुलाया जाएगा और सही स्थिति में रखा जाएगा। Android अनुशंसा के अनुसार, आपको केवल एक ही बच्चा दृश्य फ्रेमलेयूट [लिंक] में जोड़ना चाहिए ।
यहां आपका कोड कैसा दिखेगा, यह मानकर कि आप किसी विशेष स्थान पर TextView प्रोग्राम बनाना चाहते हैं:
चरण 1:
आपके लेआउट में, जिसमें दृश्य को फुलाया जाना है, एक फ्रेमलैट को सही स्थिति में रखें और इसे एक आईडी दें, कहें, "कंटेनर"।
चरण 2
रूट तत्व के साथ एक लेआउट बनाएं, जिस दृश्य को आप रनटाइम के दौरान फुलाते हैं, लेआउट फ़ाइल को "textview.lml" के रूप में कॉल करें:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
</TextView>
BTW, अपने फ्रेम के लेआउट-पैरामेट्स को सेट करें हमेशा लपेटें_कंट के लिए और फिर फ्रेम लेआउट माता-पिता के रूप में बड़ा हो जाएगा अर्थात गतिविधि यानी फोन स्क्रीन।
android:layout_width="wrap_content"
android:layout_height="wrap_content"
यदि सेट नहीं किया गया है, क्योंकि फ़्रेम का एक बच्चा दृश्य, डिफ़ॉल्ट रूप से, फ़्रेम लेआउट के बाएँ-शीर्ष पर जाता है, इसलिए आपका दृश्य बस स्क्रीन के बाएँ शीर्ष पर जाएगा।
चरण 3
अपने ऑनक्रीट विधि में, यह करें:
FrameLayout frameLayout = findViewById(R.id.container);
TextView textView = (TextView) View.inflate(this, R.layout.textview, null);
frameLayout.addView(textView);
(नोट के अंतिम पैरामीटर है कि findViewByIdकरने के लिए nullफोन करके और देखने जोड़ने addView()कंटेनर दृश्य (frameLayout) पर बस पास करके फुलाया दृश्य संलग्न रूप में ही है trueकी 3 पैरामीटर में findViewById()। अधिक के लिए, देखें इस ।)