2013-10-03 11 views
24

मैं एक ही चौड़ाई के प्रोग्रामिक रूप से एक गतिविधि में तीन रैखिक लेआउट जोड़ना चाहता हूं। समस्या यह है कि मैं इन लेआउट के वजन को प्रोग्रामेटिक रूप से सेट करने में सक्षम नहीं हूं। मैं इसे एक्सएमएल के भीतर कर सकता हूं, लेकिन मैं इसे प्रोग्राम में करना चाहता हूं। यहाँ जो मैं चाहता है: enter image description hereएंड्रॉइड रैखिक लेआउट वजन प्रोग्रामेटिक

उत्तर

38

यहाँ इसके समाधान के लिए लेआउट पैरामीटर की स्थापना वजन सेट करने के लिए

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100); 
    lp.weight = 1; 

देखें पूर्ण समाधान

LinearLayout ll1, ll2, ll3; 
    /* Find these LinearLayout by ID 
    i.e ll1=(LinearLayout)findViewById(R.id.ll1); 
    */ 

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100); 
    lp.weight = 1; 
    ll1.setLayoutParams(lp); 
    ll2.setLayoutParams(lp); 
    ll3.setLayoutParams(lp); 
+1

त्वरित प्रतिक्रिया के लिए धन्यवाद, आकर्षण की तरह काम किया। हालांकि मुझे इसे थोड़ा सा संशोधित करना था >> LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams (0, LayoutParams.WRAP_CONTENT); \t \t \t \t lp.weight = 1; – Bhaijaan

5

उपयोग new LinearLayout.LayoutParams(int width, int height, float weight) जब subviews

2

इस तरह से करें ..

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    txtNote = (LinedEditText) findViewById(R.id.txtNote); 
    lnr = (LinearLayout) findViewById(R.id.lnr); 
    LinearLayout l1 = new LinearLayout(this); 
    LinearLayout l2 = new LinearLayout(this); 
    LinearLayout l3 = new LinearLayout(this); 
    l1.setBackgroundResource(android.R.color.holo_green_light); 
    l2.setBackgroundResource(android.R.color.holo_orange_dark); 
    l3.setBackgroundResource(android.R.color.holo_blue_bright); 

    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT, 1); 
    lnr.addView(l1, param); 
    lnr.addView(l2, param); 
    lnr.addView(l3, param); 

} 
2

आप अपने व्यक्तिगत रेखीय लेआउट के लिए लेआउट वजन संपत्ति की स्थापना द्वारा यह कर सकते हैं, LinearLayout में इसे पारित - LayoutParams निर्माता:

LinearLayout.LayoutParams param = new LinearLayout.LayoutParam(
         LayoutParams.MATCH_PARENT, 
         LayoutParams.MATCH_PARENT, 1); 

या

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
         0, 
         LayoutParams.MATCH_PARENT, 1); 

आशा है कि यह आपकी मदद कर सकता है!

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