कोड में लेआउट अभिविन्यास


90

मेरे पास मेरे आवेदन में यह कोड है:

LinearLayout.LayoutParams params =
    new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);

और मैं अभी रैखिक के अभिविन्यास को ऊर्ध्वाधर में सेट करना चाहता हूं। XML में समतुल्य है:

android:orientation="vertical"

मैं इसे बिना XML के कोड में कैसे कर सकता हूं?

जवाबों:


188

आप LinearLayoutइसका उपयोग करके अभिविन्यास नहीं बदल सकते LayoutParams। यह केवल एक LinearLayoutवस्तु के साथ किया जा सकता है ।

LinearLayout layout = /* ... */;
layout.setOrientation(LinearLayout.VERTICAL);

8

आप इस तरह का उपयोग कर सकते हैं:

LinearLayout myll = (LinearLayout) findViewById(R.id.yourLinearLayout);
myll.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));
myll.setOrientation(LinearLayout.VERTICAL);

4
दूसरी पंक्ति होनी चाहिएmyLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
abhyudayasrinet

4

आपको LinearLayout को इंस्टाल करने की आवश्यकता है। उसके बाद आप setOrientation () कॉल कर सकते हैं

LinearLayout myLayout = ...;
myLayout.setLayoutParams(new LayoutParams(LinearLayout.WRAP_CONTENT, LinearLayout.WRAP_CONTENT);
myLayout.setOrientation(LinearLayout.VERTICAL);

यह काम करना चाहिए :)

अधिक जानकारी के लिए Android API की जाँच करें ।


2

नीचे एक काम का नमूना (यह LayoutParams.WRAP_CONTENT है, रैखिक नहीं है। WAP_CONTENT)

myLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
myLayout.setLayoutParams(layoutParams);

2

यदि कोई अन्य व्यक्ति यहां आता है तो मेरे लिए ज़मारिन के जवाब की तलाश में, समकक्ष है:

LinearLayout layout = /* ... */;
layout.Orientation = Orientation.Vertical;
layout.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent);

-6

बस अनुसरण के रूप में उपयोग करें: -

LinearLayout mlayout = new LinearLayout(context);
mlayout.setOrientation(2);

2 का अर्थ है Vertical, 1 का उपयोग किया जाता है horizontal


1
उत्तर स्वीकार किए जाने के बाद 4 साल बाद आप क्यों आएंगे और इससे भी बदतर जवाब देंगे? आपको '2' का उपयोग नहीं करना चाहिए। आपको LinearLayout में परिभाषित स्थिर मूल्यों का उपयोग करना चाहिए, जैसे LinearLayout.Vertical।
रब्बी

क्योंकि मैं जानना चाहता था कि मैं सही हूं या गलत। :) अब मैंने सीखा कि लीनियर लयआउट में परिभाषित स्थिर मूल्यों का उपयोग करना बेहतर है। :-)
यम राही

तो फिर सिर्फ सही उत्तर पर ध्यान क्यों नहीं दिया जाता? स्टैक ओवरफ्लो का उपयोग आपके अनुमानों को ANSWERS के रूप में करने के लिए नहीं किया जाना चाहिए। यदि आप नहीं जानते कि प्रश्न का सही उत्तर कैसे दिया जाए, तो उत्तर न लिखें। अब जब कोई इस पृष्ठ पर आता है, तो उन्हें आपके गलत उत्तर को नजरअंदाज करने और बेहतर लोगों की तलाश करने के लिए जानना होगा। यही कारण है कि आपको नीचा दिखाया जा रहा है।
चुपके रब्बी

मैं सिर्फ अपने दोस्त का योगदान करना चाहता था, मेरे मामले में यह काम किया और मैंने उसके लिए टिप्पणी की। BTW, अगर 2 और 1 का उपयोग करना गलत है, तो यह नरक क्यों है?
यम राही '’

यह मौजूद है क्योंकि यह LinearLayout में परिभाषित स्थिर स्थिरांक से जुड़ा हुआ कच्चा मान है, जैसा @StealthRabbi ने बताया है। हालांकि, आपको कभी भी उन मूल्यों का उपयोग नहीं करना चाहिए।
डैनियल मोलिना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.