Qual è il modo corretto di ignorare onMeasure()? Ho visto vari approcci. Ad esempio, Sviluppo Android professionale utilizza MeasureSpec per calcolare le dimensioni, quindi termina con una chiamata a setMeasuredDimension(). Ad esempio:Modo autoritativo per ignorare onMeasure()?
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
}
D'altro canto, come per this post, il modo "corretto" è quello di utilizzare MeasureSpec, chiamare setMeasuredDimensions(), seguita da una chiamata a setLayoutParams(), e termina con una chiamata a super.onMeasure(). Ad esempio:
@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);
}
Quindi qual è la strada giusta? Nessuno dei due approcci ha funzionato al 100% per me.
Immagino davvero che cosa sto chiedendo è qualcuno sa di un tutorial che spiega onMeasure(), il layout, le dimensioni delle visualizzazioni figlio ecc.?
hai trovato la risposta utile/corretta? perché non contrassegnarlo come * la * risposta? – superjos