ওভারঅরাইডিংয়ের সঠিক পদ্ধতিটি কি পরিমাণে ()? আমি বিভিন্ন পন্থা দেখেছি। উদাহরণস্বরূপ, পেশাদার অ্যান্ড্রয়েড বিকাশ পরিমাপগুলি গণনা করার জন্য মেজারস্পেক ব্যবহার করে, তারপরে সেটমিজুরডিমাইশন () সেট করার কল দিয়ে শেষ হয়। উদাহরণ স্বরূপ:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
}
অন্যদিকে, অনুযায়ী এই পোস্টে , "সঠিক" পথ MeasureSpec ব্যবহার করা, কল setMeasuredDimensions (), দ্বারা অনুসরণ setLayoutParams () একটি কল, এবং super.onMeasure একটি কল () দিয়ে শেষ। উদাহরণ স্বরূপ:
@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% কাজ করে না।
আমি অনুমান করি যে আমি যা জিজ্ঞাসা করছি তা কি কেউ এমন টিউটোরিয়াল সম্পর্কে জানে যে onMeasure (), লেআউট, শিশু দর্শনের মাত্রা ইত্যাদি ব্যাখ্যা করে?