Quelle est la bonne façon de remplacer onMeasure ()? J'ai vu différentes approches. Par exemple, Professional Android Development utilise MeasureSpec pour calculer les dimensions, puis se termine par un appel à setMeasuredDimension (). Par exemple:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
}
D'autre part, selon cet article , la manière «correcte» est d'utiliser MeasureSpec, d'appeler setMeasuredDimensions (), suivi d' un appel à setLayoutParams () et de se terminer par un appel à super.onMeasure (). Par exemple:
@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);
}
Alors, quelle est la bonne manière? Aucune des deux approches n'a fonctionné à 100% pour moi.
Je suppose que ce que je demande vraiment, c'est que quelqu'un connaît un tutoriel qui explique onMeasure (), la mise en page, les dimensions des vues enfants, etc.?