Apa cara yang benar untuk mengganti onMeasure ()? Saya telah melihat berbagai pendekatan. Misalnya, Professional Android Development menggunakan MeasureSpec untuk menghitung dimensi, lalu diakhiri dengan panggilan ke setMeasuredDimension (). Sebagai contoh:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
}
Di sisi lain, sesuai postingan ini , cara yang "benar" adalah menggunakan MeasureSpec, panggil setMeasuredDimensions (), diikuti dengan panggilan ke setLayoutParams (), dan diakhiri dengan panggilan ke super.onMeasure (). Sebagai contoh:
@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);
}
Jadi jalan mana yang benar? Tidak ada pendekatan yang berhasil 100% untuk saya.
Saya rasa apa yang saya tanyakan adalah apakah ada yang tahu tentang tutorial yang menjelaskan onMeasure (), layout, dimensi tampilan anak, dll.?