일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Android
- Build variants
- 플레이스토어
- ListAdapter
- MVVM
- NavController
- 코틀린
- Jetpack
- coroutine
- 파이어베이스
- 리사이클러뷰
- 안드로이드
- 로그인
- 클린아키텍처
- sharedFlow
- DiffUtil
- cleanarchitecture
- Flow
- NavHost
- Kotlin
- 코딩테스트
- 컴포즈
- XML
- UiState
- 알고리즘
- 회원가입
- 커스텀뷰
- Authentication
- Compose
- 뷰
- Today
- Total
목록GridLayout (2)
Grusie 안드로이드 개발 기술 블로그

디자인을 받아 뷰를 그리던 중, GridLayout을 가진 RecyclerView를 구현해야 했던 상황이었다.이전에도 이런 적이 있었기에, ItemDecoration을 사용하였으나, 또 다시 찾아보게 되어서 정리를 해두려고 한다. 이번에 그릴 뷰는 사이에 7dp라는 마진이 있고, spanCount가 2인 그리드 뷰이다.바깥쪽엔 14dp가 아닌, 20dp가 있기에 innerMargin과 outerMargin을 따로 받아 처리하도록한다. 로직1. 맨 처음 column일 경우는, 왼쪽에 outerMargin / 2, 오른쪽에 innerMargin2. 마지막 column일 경우는, 왼쪽에 innerMargin / 2, 오른쪽에 outerMargin3. 나머지 column들은 양쪽에 innerMargin / 2 ..

정사각형 뷰를 정해진 갯수만큼 그리디하게 뿌려주는 것을 구현하면서 생긴 고민이다.기존에는 정사각형 뷰가 필요했을 때는 커스텀 레이아웃을 만들어서 구현하였다.물론 이 방법이 나쁘다는 것은 아니지만, 뷰는 가능한 xml 상에서 다 할 수 있었으면 좋겠다고 생각하였기에, 고민하던 중 constraintDimensionRatio 속성을 찾게 되었다. 기존 커스텀뷰class SquareLayout : ConstraintLayout { constructor(context: Context?) : super(context!!) {} constructor(context: Context?, attrs: AttributeSet?) : super( context!!, attrs ) { } ..