onMeasure ()를 재정의하는 올바른 방법은 무엇입니까? 다양한 접근 방식을 보았습니다. 예를 들어, Professional Android Development 는 MeasureSpec을 사용하여 차원을 계산 한 다음 setMeasuredDimension ()에 대한 호출로 끝납니다. 예를 들면 :
@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 (), 레이아웃, 자식 뷰의 크기 등을 설명하는 자습서를 아는 사람이 있습니까?