상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
1억대출이자, 자영업자가 알아야 할 사항은?
1억대출이자, 특별한 경우의 이자 조정 방법.
1억대출이자, 취업 후 바로 대출 가능한가요?
1억대출이자, 가족 대출 협의 시의 주의사항.
1억대출이자, 주택담보대출의 장점은?
스트레스 없는 식욕억제를 위한 6가지 원칙
운동 후 식욕억제를 위한 6가지 스낵
빅데이터 활용 사례: 7가지 이유로 기업의 미래를 준비하라
"해킹에 대한 책 추천: 7가지 필독서를 통해 깊이 있는 이해"
"더 나은 비즈니스 성과의 비결! 빅데이터 활용 7가지 전략"
유산균이 불면증 개선에 도움을 주나요?
유산균을 섭취하면 가벼운 감기 예방이 가능한가요?
Previous
Next
수정하기 - HorizontalScrollView의 사이즈 변경 시 레이아웃을 새로 고치는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`HorizontalScrollView`의 사이즈가 변경될 때 레이아웃을 새로 고치는 방법은 다음과 같은 단계로 진행할 수 있습니다. 이 방법은 Android 앱에서 `HorizontalScrollView`의 크기가 변경될 때 해당 레이아웃을 다시 그리거나 업데이트할 수 있도록 도와줍니다. 1. 레이아웃 변경 감지하기 `ViewTreeObserver`를 사용하여 `HorizontalScrollView`의 크기 변경 이벤트를 감지할 수 있습니다. `ViewTreeObserver`의 `OnGlobalLayoutListener`를 통해 레이아웃이 새로 그려질 때마다 호출되는 콜백을 설정할 수 있습니다. ```java HorizontalScrollView horizontalScrollView = findViewById(R.id.horizontalScrollView); horizontalScrollView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // 레이아웃이 변화했을 때 처리할 코드 refreshLayout(); } }); ``` 2. 레이아웃 새로 고치기 `refreshLayout()` 메소드는 레이아웃을 새로 고치는 로직을 포함해야 합니다. 예를 들어, 뷰를 다시 측정하고 배치하거나, 새로운 데이터를 설정하는 등의 작업을 수행할 수 있습니다. ```java private void refreshLayout() { // 필요에 따라 레이아웃을 새로 고치는 로직 구현 // 예: 데이터 변경, 뷰 업데이트 등 // 새로고침 후 다시 그리는 것이 필요할 수 있음 horizontalScrollView.requestLayout(); horizontalScrollView.invalidate(); } ``` 3. 불필요한 호출 방지 `OnGlobalLayoutListener`는 레이아웃 변경이 여러 번 발생할 수 있으므로, 필요할 경우 이벤트를 해제하여 불필요한 호출을 방지하는 것이 좋습니다. 레이아웃 변경을 감지한 후에는 리스너를 제거하는 코드를 추가합니다. ```java horizontalScrollView.getViewTreeObserver().removeOnGlobalLayoutListener(this); ``` 4. 전체 코드 예시 아래는 `HorizontalScrollView`의 크기가 변경될 때 레이아웃을 새로 고치는 전체 코드 예시입니다. ```java HorizontalScrollView horizontalScrollView = findViewById(R.id.horizontalScrollView); horizontalScrollView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // 레이아웃 새로 고침 동작 refreshLayout(); // 리스너 제거 (한 번만 호출되게 하려면) horizontalScrollView.getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); private void refreshLayout() { // 레이아웃 새로 고치는 로직 // 예: 데이터 업데이트 또는 뷰의 크기 변경 horizontalScrollView.requestLayout(); horizontalScrollView.invalidate(); } ``` 이런 방식으로 `HorizontalScrollView`의 사이즈가 변경될 때 레이아웃을 효과적으로 새로 고칠 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기