본문 바로가기

레이아웃

(4)
[안드로이드] ConstraintLayout 내부에 Fragment 알맞게 배치하기 상단에는 페이지의 제목과 설정 아이콘 등을 넣을 수 있는 AppBar, 중앙에는 변경되는 Fragment들이 배치되는 FrameLayout, 하단에는 페이지 이동을 위한 BottomNavigationView가 들어가있는 크게 세 칸의 구성으로 된 레이아웃 구성을 진행중에 있었다. 여기서 문제가 하나 있었는데, 중앙에 배치되는 ConstLayout이 삐져나온다거나 꽉 차지 않아 기기간에 차이도 생기고, 디자인의 의도대로 앱이 보여지지 않는 불편한 경우가 생기는 것이었다. 이런 경우에는 ConstraintLayout의 width와 height 설정이 중요한데, 아래와 같은 과정을 통해서 본래 의도에 맞게 중간 영역에 알맞게 Fragment의 뷰가 가득 차게 구현할 수 있었다. 1. Fragment를 뿌리는 ..
[안드로이드] 레이아웃에 동적으로 이미지뷰 추가하기 (ScalableLayout을 활용한 경우) 이미 명시된 이미지뷰의 위치를 애니메이트 하거나 이동시키는 건 어느정도 익숙했지만 동적으로 xml파일로 명시되지 않은 이미지뷰를 원하는 크기와 위치에 추가하는 건 해보지 않은 일이었다. 여러 자료들을 참조했고, 다음과 같은 큰 단계들을 따라 목표를 달성할 수 있었다. 1. 추가하고자 하는 속성의 뷰를 선언하고, 속성을 지정한다. setLayoutParams에서는 뷰의 필수값인 layout_width, layout_height을 아래와 같이 지정해주게 된다. ScalableLayout이 아닌 기타 width, height 값을 정해 만들고자 한다면 WRAP_CONTENT로 넘겨주고 있는 부분을 조정해주면 된다. ( 이 경우에는 다음 페이지를 참조할 것 : https://stackoverflow.com/qu..
[안드로이드] 안드로이드 오버드로우 개선 - 레이아웃의 background를 확인하자 앱 개발 단계가 잠시 소강상태에 있는동안 자잘자잘한 부분들까지 개선해서 기본적으로 최대한의 성능을 유지할 수 있도록 점검을 하고 있는 중이다. 그동안 메모리는 상당부분 건드려왔었기 때문에 레이아웃에 관련해서 개선점이 있을까 이전에 책에서 봤던 레이아웃 오버드로를 점검해보기로 했다. 대충 구글에서 말하고 있는 바로는 개발자 옵션에서 오버드로 옵션을 켰을때 붉은 부분이 최대한 나타지 않도록 하는것이 '권장' 하는 바로 되어있는데, 에서는 이 '권장'하는 부분, 오버드로를 제거함으로써 생각보다 상당한 성능개선이 나타난다는 점을 보여주고 있다. 그런고로 오버드로 옵션을 키고 앱을 쭉 실행해봤고, 아니나 다를까 겹치는 부분들이 상당히 있어 처음엔 부분 부분의 background를 @null로 설정해주었지만 큰 개..
[안드로이드] 레이아웃 불러오는데 나오는 오류 해결 (android.view.InflateException) 방탈출 게임을 만드는중에 게임을 시작하면 처음에 나오는 방 화면을 구성해놓았는데 이것이 답답하게 다른 액티비티는 잘만 불러와지는데 Newgame 만 누르면 InflateException 오류와 함께 튕겨버리는 것이였다. 이를 해결하고자 구글링을 하였으나 거의 다 비슷한 내용. 불러오려는 xml파일에 맞게 클래스명이니 파일명이니 수정하는 것이였는데 여기에는 분명 문제가 없어 지웠다가 다시 만들다 그러다가 안되서 오류가 나는 부분을 확인해보니 이미지뷰가 시작되는 부분부터 오류가 있다. 혹시나 해서 주석처리를 하고 다시 실행해보니 아, 실행이 된다. 문제는 이미지뷰에 있던것이다. 이미지뷰 오류라는 내용으로 구글링을 다시 하니 안드로이드에 png가 자주 쓰인다는 내용. 그래서 그제서야 보니 방 화면에 쓰고있던 ..