2012-11-22 15 views
10

मैं एक कस्टम संवाद के आकार पाने के लिए एक रास्ता तलाश रहा हूँ। मैं this प्रश्न के माध्यम से गया, लेकिन दिया गया एकमात्र उत्तर बहुत बेकार है, क्योंकि अगर मैं mDialog.getWindow().getAttributes().height; का प्रयास करता हूं तो यह केवल 2 देता है, जो WRAP_CONTENT विशेषता के लिए स्थिर है जो मैंने संवाद में सेट किया है। मैं इसका आकार कैसे प्राप्त कर सकता हूं। मैं पृष्ठभूमि छवि के लिए siye जानना चाहता हूँ।संवाद आकार कैसे प्राप्त करें?

+0

क्या संवाद वास्तव में आप प्रयोग करते हैं: तो वर्ग आप संवाद वर्ग से विरासत में सिर्फ विधि ओवरराइड? –

+0

पब्लिक क्लास कंट्रोलऑवरले संवाद को बढ़ाता है, तो बस डायलॉग – slezadav

उत्तर

11

वास्तव में, एंड्रॉयड में यह आईओएस में की तरह काम नहीं करता है - आप View खुद के आकार नहीं मिल सकता है, तो आप क्या कर सकते हैं, हालांकि, इस बात का जड़ लेआउट के आकार के लिए पूछना है राय।

उदा .:

myDialog.this.findViewById(R.id.dialog_root_layout).getHeight());

+1

हालांकि यह हेडर के बिना संवाद का आकार देता है, यह वही है जो मुझे चाहिए। – slezadav

+0

@ मिचल: मुझे 'AlertDialog' के लिए' dialog_root_layout को हल नहीं किया जा सकता है या फ़ील्ड नहीं है '। –

+0

@ LuisA.Florit dialog_root_layout डालने के बजाय आपको अपने संवाद की आईडी डालना चाहिए। – Michal

16

इसे आज़मा कर देखें:

mDialog.getWindow().getDecorView().getHeight() 
+1

महान काम वास्तव में अच्छी तरह से, माइकल का जवाब मेरे मामले के लिए बेहतर है हालांकि। – slezadav

+8

@ KorniltsevAnatoly: यह मेरे लिए काम नहीं करता है। मुझे 0. –

+0

@ ओवरराइड सार्वजनिक शून्य पर विन्डोफोकस चेंज (बूलियन हैफोकस) { super.onWindowFocusChanged (हैसोकस); // यहां कॉल करें } –

4

@Kormilsev अनातोलीय सही उत्तर दिया है और मैं बस में सुधार कर रहा हूँ।

@Override 
public void onWindowFocusChanged (boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    hight = getWindow().getDecorView().getHeight(); 
} 
+0

और इस घटना को AlertDialog के लिए कैसे सेट करें ?? – user924

+1

यह 'alertDialog.setOnShowListener (नया DialogInterface.OnShowListener()' – user924

+0

काम करेगा हाँ। यह ज्यादातर अलर्टडियलॉग का उपयोग करने का निर्णय है। – CodeToLife

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