메니패스트에 설정 집어넣으니 안깨지는거보고 한발 빼고온뒤에 onConfigurationChanged 함수 호출시점에서 View의 크기가 제대로 측정 안되는 오류를 8일인가 9일때 겪어서 이거 수정해볼까 했음
11일때 생각한건 그냥 레이아웃 체인지 리스너넣는거.
근데
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
areaView.addOnLayoutChangeListener(this); //인터페이스 구현시
//areaView.addOnLayoutChangeListener(this::onLayoutChange); 인터페이스 미구현시, 리스너 추가는 됨
}
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
Log.i("전환",(right-left)+","+(bottom-left));
areaView.removeOnLayoutChangeListener(this); //인터페이스 구현시
// areaView.removeOnLayoutChangeListener(this::onLayoutChange); 인터페이스 미구현시, 리스너 제거 안됨(화면 돌릴때마다 로그 찍히는 횟수가 늘어남)
}
remove 리스너할때 저 둘이 컴파일 에러도 안뱉으면서 다른 결과라는게 좀 놀랍다
아니 씨발 C#이면 절대 발생할수없는 차이 아니냐 이거...?
굳이 인터페이스 함수 구현할거면서 클래스 부분에 인터페이스 구현 명시 안한건 뭔 보노보노같은짓이냐 하면 할말 딱히 없긴한데..이런식으로 리스너 한두개쯤 붙이면 클래스 이름 부분이 조오오오온나 길어지는게 눈꼴사나웟음
댓글 0