दिलचस्प पोस्ट
एंड्रॉइड: सूचना बार से अधिसूचना हटाएं एंड्रॉइड में फोन कॉल कैसे रिकॉर्ड करें? दो तिथियों के बीच सप्ताह की संख्या प्राप्त करें ऑब्जेक्ट के लिए रूबी विधि लुकअप पथ युनिकोड स्ट्रिंग को स्ट्रिंग में पायथन में कनवर्ट करें (अतिरिक्त प्रतीकों वाले) डॉक करने वाले कंटेनर को स्थानीय / होस्ट पोस्टग्रेज़ डेटाबेस से कनेक्ट करने की अनुमति दें बाइंडिंग एलिमेंटनाम क्या यह दृश्य ट्री या तार्किक पेड़ का उपयोग करता है? सी में 64-बिट चर घोषित करना विधि अधिभार रिज़ॉल्यूशन सिस्टम कैसे तय करता है कि जब कोई रिक्त मान पारित हो, तो कौन सी विधि कॉल करेगी? LINQ क्वेरी यह जानने के लिए कि सूची में आइटम्स अन्य सूची में मौजूद हैं या नहीं सीडी में पढ़ने के लिए read.csv () का उपयोग करते समय "इनपुट में एम्बेडेड नल (एस) मिला" जीआईआई एनीमेशन ऑनलोड को रोकें, माउसओवर पर सक्रियण प्रारंभ करें सरणी सूची से अर्रे तक PySpark क्यों py4j.java_gateway पा सकते हैं? NumPy में भारित मानक विचलन?

एक TextView प्रोग्राम के रूप में लेआउट वजन सेट करें

मैं TableRow ऑब्जेक्ट को गतिशील रूप से बनाने और एक TableLayout जोड़ने की कोशिश कर रहा हूं। TableRow ऑब्जेक्ट में 2 आइटम, एक TextView और एक CheckBoxTextView आइटम को CheckBox आइटम को अभी तक CheckBox करने के लिए 1 का अपना लेआउट वजन सेट करना होगा।

मैं एक TextView आइटम के लेआउट वजन को प्रोग्रामैटिक रूप से सेट करने के बारे में दस्तावेज़ीकरण नहीं ढूंढ सकता।

Solutions Collecting From Web of "एक TextView प्रोग्राम के रूप में लेआउट वजन सेट करें"

आपको TableLayout.LayoutParams का उपयोग करना होगा। TableLayout.LayoutParams इस तरह से कुछ के साथ:

 TextView tv = new TextView(v.getContext()); tv.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); 

अंतिम पैरामीटर वजन है

इसका जवाब यह है कि आपको टेबलरॉ का उपयोग करना होगा। लेआउटपैरम, नहीं LinearLayout.LayoutParams या किसी अन्य लेआउट पैरामीटर

 TextView tv = new TextView(v.getContext()); LayoutParams params = new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f); tv.setLayoutParams(params); 

अलग लेआउट पैरामीटर विनिमेय नहीं हैं और यदि आप गलत इस्तेमाल करते हैं तो कुछ भी नहीं लगता है। पाठ दृश्य के अभिभावक एक तालिका पंक्ति है, इसलिए:

http://developer.android.com/reference/android/widget/TableRow.LayoutParams.html

पहले जवाब वजन में एक नया SomeLayoutType.LayoutParams ऑब्जेक्ट के निर्माता को दिया जाता है। फिर भी कई मामलों में मौजूदा वस्तुओं का उपयोग करने में यह अधिक सुविधाजनक है – यह उन मापदंडों से निपटने से बचने में मदद करता है जिनके हम में रुचि नहीं है।

एक उदाहरण:

 // Get our View (TextView or anything) object: View v = findViewById(R.id.our_view); // Get params: LinearLayout.LayoutParams loparams = (LinearLayout.LayoutParams) v.getLayoutParams(); // Set only target params: loparams.height = 0; loparams.weight = 1; v.setLayoutParams(loparams); 

बस उस लेआउट में लेआउट पैरामीटर सेट करें जैसे

परम चर बनाएँ

  android.widget.LinearLayout.LayoutParams params = new android.widget.LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1f); 

1f वजन चर है

अपने विजेट या लेआउट की तरह सेट करें

  TextView text = (TextView) findViewById(R.id.text); text.setLayoutParams(params); 
 TextView text = new TextView(v.getContext()); text.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); 

(या)

 TextView tv = new TextView(v.getContext()); LayoutParams params = new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f); tv.setLayoutParams(params); 

1f वजन = 1 के रूप में प्रस्तुत किया जाता है; आपकी आवश्यकता के अनुसार आप 2f या 3f दे सकते हैं, दृश्य स्थान पर एन्कोडिंग को स्थानांतरित कर देगा। रैखिक लेआउट में दृश्य के बीच निर्दिष्ट दूरी बनाने के लिए "LinearLayout" का उपयोग करें।

 LinearLayout ll_Outer= (LinearLayout ) view.findViewById(R.id.linearview); LinearLayout llInner = new LinearLayout(this); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FillParent, LinearLayout.LayoutParams.WrapContent); llInner.Orientation = Orientation.Horizontal; llInner.WeightSum = 2; ll_Outer.AddView(llInner); 
 TextView txtview = new TextView(v.getContext()); LayoutParams params = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f); txtview.setLayoutParams(params); 

1f वजन = 1 के रूप में दर्शाता है; आप 2f या 3f दे सकते हैं, दृश्य अंतरिक्ष में एन्कोडिंग को स्थानांतरित कर देगा

आप इस तरह से अलग वजन भी दे सकते हैं,

 LayoutParams lp1 = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT); lp1.weight=1; 

मेरे लिए यह काम है, और मुझे आशा है कि यह आपके लिए भी काम करेगा

पैरेंट दृश्य के लिए लेआउट पर्म सेट करें पहले:

 myTableLayout.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.FILL_PARENT)); 

तो TextView (बच्चे) के लिए सेट करें:

  TableLayout.LayoutParams textViewParam = new TableLayout.LayoutParams (TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT,1f); //-- set components margins textViewParam.setMargins(5, 0, 5,0); myTextView.setLayoutParams(textViewParam); 

यह आपको काम करना चाहिए

 LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT LayoutParamsMATCH_PARENT); param.weight=1.0f; 

ऐसा करने का एक और तरीका है यदि आपको केवल एक पैरामीटर सेट करने की आवश्यकता होती है, उदाहरण के लिए 'ऊंचाई':

 TextView textView = (TextView)findViewById(R.id.text_view); ViewGroup.LayoutParams params = textView.getLayoutParams(); params.height = ViewGroup.LayoutParams.WRAP_CONTENT; textView.setLayoutParams(params); 

मेरे पास एक समाधान के साथ एक बहुत ही कठिनाई हुई समस्या थी जो कुछ इसी तरह से समान था: एक टेबलरॉ में दो बटन रखने की कोशिश करते हुए प्रत्येक के साथ आधा स्क्रीन की चौड़ाई जो भी कारण से, बाएं बटन हमेशा चौड़ाई का लगभग 70% होगा, और दायां बटन 30%। कॉलिंग table_layout.setStretchAllColumns (सच्चे) का कोई प्रभाव नहीं पड़ा, न ही बटन की चौड़ाई को आधा स्क्रीन पर सेट किया गया और न ही उनके लेआउट वजन सेट करना था

मैंने जो समाधान समाप्त किया था, वह तालिकारेज़ में एक रैनिअर लेआउट के साथ घूम रहा था, जिसने बटनों की चौड़ाई के मूल्य को ध्यान में रखा था

  TableLayout layout = new TableLayout(this); TableRow top_row = new TableRow(this); left_button = styleButton(); right_button = styleButton(); LinearLayout toprow_layout = new LinearLayout (this); toprow_layout.setOrientation(LinearLayout.HORIZONTAL); toprow_layout.addView (left_button); toprow_layout.addView(right_button); toprow.addView(top_layout); layout.addView(top_row) private Button styleButton() { Button btn = new Button (this); android.view.Display display = ((android.view.WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); btn.setWidth((int)(display.getWidth()/2)); // set width to half btn.setHeight(((int)display.getHeight()/6)); // set height to whatevs btn.setText("foo"); return btn; }