질문과 답변

스크롤뷰 안에 배치된 프래그먼트에 컨텐츠 표시할때 컨텐츠 표시 길이에 따라 하단 네비게이션 바의 높이가 바뀝니다 날짜:2022-2-10 12:08:32 조회수:87
작성자 : bluenote
포인트 : 7
가입일 : 2022-02-10 11:51:35
방문횟수 : 8
글 1개, 댓글 1개
소개 :
작성글 보기
쪽지 보내기
수고 많으십니다.

지금 개발하는 앱은 화면 상단에 스크롤뷰를 두고 그 안에 데이터 바인딩으로 프래그먼트 표시를 하는 구조구요. 화면 하단에 하단 네비게이션 바를 두고 프래그먼트를 옮겨다니게 구성했습니다.

그런데 프래그먼트에 충분한 량의 컨텐츠가 아니게 표시되면 (화면의 5분의 3정도까지, 또는 그보다 적게 되면) 하단 네비게이션 바의 높이가 5px~8px 정도씩 바뀝니다. 스크롤해서 봐야 할 정도의 컨텐츠가 표시되면 의도한대로 높이가 표시되구요.

혹시 보고된 사례가 있나요?

레이아웃 XML에서 하단 네비게이션 바의 android:height를 설정해도 안되구요. weight를 줘도 안됩니다. XML 문제라면 스크롤뷰의 android:height 설정이나 weight 설정도 잘 해놔야 할듯한데 이게 문제일까요 아니면 다른 문제가 있을까요?

목록보기 삭제 수정 신고 스크랩

bluenote 2월10일 1:38:05  

해결 방법을 찾아 자문자답합니다 ^^

우선 레이아웃 XML 구조가요

리니어레이아웃
-- 컨테이너뷰
-- 하단 네비게이션뷰

인데요.

리니어레이아웃의 오리엔테이션이 버티칼이면
컨테이너뷰의 layout_height="0dp" layout_weight="1" 이어야하고
하단 네비게이션뷰에는 layout_height를 wrap_content로, layout_weight는 주지 말야아 합니다.

이렇게 간단하게 적용하니, 프래그먼트가 바뀌어도 하단 네비게이션 바 높이가 균일하게 고정됩니다.

어떤 분이 조언줏셔서 하니 해결되네요.

daypark 2월10일 4:28:14  

layout_weight 속성이 은근히 복잡하고 기대와는 달리 직관적이지 않은 경우가 많더라구요.
그래서 전 항상 간단한 폼에서 딱 원하는 형태를 만들어 완벽하게 원하는대로 동작하는지 확인한 후에 적용합니다.
해상도나 방향이 바뀌어도 제대로 유지되는지, 내용이 없거나 너무 많아도 제대로 나오는지 확인할게 은근 많아요.


로그인하셔야 댓글을 달 수 있습니다.