2011-10-15 5 views
5

पर सेट किए गए बटन की चौड़ाई प्राप्त करने के लिए मैं एक बटन की चौड़ाई प्राप्त करने की कोशिश कर रहा हूं जिसका android:layout_widthwrap_content पर सेट है। जब मैं onCreate() में getMeasuredWidth() का उपयोग करने की कोशिश करता हूं, तो मुझे शून्य का मान मिलता है क्योंकि मुझे लगता है कि दृश्य अभी तक तैयार नहीं है।एंड्रॉइड - wrap_content

मुझे चौड़ाई कब मिलनी चाहिए? क्या कोई श्रोता है जिसे मैं शुरू कर सकता हूं जब दृश्य प्रारंभ किया जाता है?

उत्तर

13

आप लेआउट में एक पेड़ पर्यवेक्षक जोड़ सकते हैं। यह सही चौड़ाई और ऊंचाई वापस करना चाहिए। बच्चे के विचारों के लेआउट से पहले क्रिएट को बुलाया जाता है। तो चौड़ाई और ऊंचाई की गणना अभी तक नहीं की गई है। ऊंचाई और चौड़ाई पाने के लिए। FYI करें onCreate विधि

LinearLayout layout = (LinearLayout)findViewById(R.id.YOUD VIEW ID); 
ViewTreeObserver vto = layout.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     this.layout.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
     int width = layout.getMeasuredWidth(); 
     int height = layout.getMeasuredHeight(); 

    } 
}); 
+1

पर इस रखो: 'removeGlobalOnLayoutListener' नए APIs में हटा दिया गया है, और यह' removeOnGlobalLayoutListener' अब है। अधिक जानकारी के लिए: http://stackoverflow.com/a/16190337/487940 – harsimranb

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