ऑनमार्ट () को ओवरराइड करने का सही तरीका क्या है? मैंने विभिन्न दृष्टिकोण देखे हैं। उदाहरण के लिए, पेशेवर एंड्रॉइड डेवलपमेंट आयामों की गणना करने के लिए मीजस्पीक का उपयोग करता है, फिर सेटमेशर्डडिमेंशन () में कॉल के साथ समाप्त होता है। उदाहरण के लिए:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
}
दूसरी ओर, इस पोस्ट के अनुसार , "सही" तरीका है मापक का उपयोग, कॉल सेटमैस्डडिमेंशन्स (), इसके बाद सेटलेयूटपराम () को कॉल करें, और सुपरऑनमर्ज़ () को कॉल के साथ समाप्त करें। उदाहरण के लिए:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
this.setLayoutParams(new *ParentLayoutType*.LayoutParams(parentWidth/2,parentHeight));
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
तो सही तरीका कौन सा है? न तो दृष्टिकोण ने मेरे लिए 100% काम किया है।
मुझे वास्तव में लगता है कि मैं जो पूछ रहा हूं, क्या वह किसी ट्यूटोरियल के बारे में जानता है जो ऑनमर्न्स (), लेआउट, बच्चे के विचारों के आयाम आदि के बारे में बताता है?