일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린
- 안드로이드
- NavController
- 컴포즈
- ListAdapter
- Android
- NavHost
- Flow
- sharedFlow
- 로그인
- UiState
- 알고리즘
- 코딩테스트
- DiffUtil
- Jetpack
- 플레이스토어
- 파이어베이스
- 클린아키텍처
- Build variants
- 뷰
- coroutine
- Kotlin
- Authentication
- cleanarchitecture
- 리사이클러뷰
- Compose
- 회원가입
- XML
- MVVM
- 커스텀뷰
- Today
- Total
목록XML (3)
Grusie 안드로이드 개발 기술 블로그

BottomSheetDialogFragment를 사용해 본 적은 여러번이나, 사용 할 때 다시 찾아보게 되었던 것 같아서 기록한다. BottomSheetDialogFragment란 Material 라이브러리에서 제공해주는 클래스로, 하단 다이얼로그를 간단하게 생성하기 위해 만들어졌다. 기존의 레거시 코드에서는 BottomSheet 대신 Activity를 만들어, 뷰의 N% 크기만큼은 딤처리를 하고, 터치 시 finish()를 하도록 구현되어 있었다.하지만 요즘 Activity를 하나만 만들고 프래그먼트로만 모두 처리하는 형태의 앱들이 나타나는 만큼, Activity는 Fragment에 비해 무겁고 속도가 느리다는 단점이 있다. 간단한 뷰를 만들 때에도 액티비티를 활용하는 것은 옳지 않다고 생각한다. 사용..

디자인을 받아 뷰를 그리던 중, 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 ) { } ..