2014-09-19 19 views
10

उदाहरण के लिए, एंड्रॉइड में टेक्स्ट व्यू के लिए आपको setWidth विधि के बजाय लेआउट पैराम्स सेट करना होगा।क्यों सेटविड्थ काम नहीं करता है?

TextView tv = new TextView(getContext()); 
LayoutParams params = new LayoutParams(100, LayoutParams.WRAP_CONTENT); 
tv.setLayoutParams(params); 

लेकिन क्यों? Android docs में यह कहता है कि यह वही परिणाम देगा।

+0

भी जानने में रूचि है। जब भी मुझे इसका इस्तेमाल करना होता है तो लेआउट पैराम्स मेरी तरफ एक कांटा है। – burmat

+0

क्या आपने यह सुनिश्चित करने के लिए xml में मैन्युअल रूप से इसे आजमाया है, यह सुनिश्चित करने के लिए कि कोई अभिभावक इसे प्रभावित नहीं कर रहा है? या दूसरी बात कोशिश की जाएगी .invalidate()। –

+0

'setWidth()' काम करता है लेकिन इसे लेआउट पैराम्स द्वारा ओवरराइड किया जा सकता है। तो 'टेक्स्ट व्यू' 'सेटविड्थ()' का एक उदाहरण पोस्ट करें जो काम नहीं करता है और 'टेक्स्ट व्यू' लेआउट लेआउट – laalto

उत्तर

1

आपको लेआउट पैराम का उपयोग करना होगा क्योंकि एक अलग चौड़ाई या ऊंचाई सेट करना लेआउट की सभी स्थिति बदल सकता है। सभी दृश्य पदानुक्रम को नए आयामों को समायोजित करना है, एकमात्र तरीका लेआउट पैराम बदल रहा है। तब माता-पिता को अधिसूचित हो जाता है और बच्चों के विचारों को मापने की पूरी प्रक्रिया शुरू होती है।

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