툴바 레이아웃 밀림 현상
<CoordinatorLaout>
<AppBarLayout>
<Toolbar>
<RelativeLayout>
<TextView/>
<TextView/>
<LinearLayout/>
<LienarLayout/>
</RelativeLayout>
</Toolbar>
</AppBarLayout>
</CoordinatorLayout>
이런식으로 레이아웃을 구성하여 글 작성화면을 만들고자 하는데, 아래와 같이 레이아웃이 오른쪽으로 밀리는 현상이 발생했다.
이것을 해결하고자, 여러차례 검색과 삽질을 해보았다.
원인은 아래에 나온 코드를 보면 알 수 있다. 툴바 내부에 RelativeLayout이 있는데 이것이 layout_width="match_parent"로 되어 있다. 그런데, 툴바에 백버튼(왼쪽 화살표)가 실행중에 동적으로 생성되는데 이 화살표가 추가되면서 레이아웃이 오른쪽으로 밀리게 되는 것이다. 나와 비슷한 문제를 해결했던 블로그가 있어서 링크를 걸어 놓겠다. 참고
핵심은 툴바 안에 레이아웃을 배치하고 싶을때는 항상 layout_gravity 속성으로만 배치를 해야 한다는것이다. Toolbar라는 것도 결국엔 뷰그룹일 뿐이다. 툴바내부의 텍스트 뷰 2개를 layout_gravity속성으로 정렬하고 리니어 레이아웃 2개는 밖으로 뺀다음에 아래와 같이 레이아웃을 재구성했더니 제대로 동작하는것을 확인할 수 있었다.
<CoordinatorLaout>
<RelativeLayout>
<AppBarLayout>
<Toolbar>
<TextView/>
<TextView/>
</Toolbar>
</AppBarLayout>
<LinearLayout/>
<LienarLayout/>
</RelativeLayout>
</CoordinatorLayout>