반응형 안드로이드32 [compose] TextField로 숫자 입력 시 VisualTransformation 사용하여 쉼표(,) 붙여주기 사용자로부터 숫자를 입력 받아야 하는 경우가 있습니다. 이때 가독성을 위해 세자리 단위마다 쉼표 (,) 를 찍어주는 것이 좋습니다. 예를 들어 숫자 1백만은 1000000이지만 1,000,000 으로 표기하는 것이 가독성에 좋습니다. 일반적으로 TextField의 onValuChange 함수를 통해 이를 대응하는 경우가 있는데, 아마도 원하는 결과가 쉽게 나오지 않을 것입니다. 특히 커서 움직임과 관련해서요. 커서를 이리저리 움직이고, 숫자를 입력/삭제해보면 의도치 않은 동작을 확인할 수 있습니다. Compose TextField에서는 사용자가 실제로 입력한 텍스트와 별개로 화면에 보여질 텍스트를 변환해주는 메커니즘을 제공하고 있습니다. 바로 VisualTransformation 인데요. VisualTr.. 2023. 4. 16. RecyclerView의 특정 아이템 위치로 이동하기 RecyclerView를 사용하면서 어떤 사용자 action 등에 의해 특정 아이템 위치로 스크롤할 필요가 있습니다. 이때 손 쉽게 사용할 수 있는 방법이 있는데, 아래와 같이 기본적으로 제공되는 scrollToPosition 함수를 사용하는 것입니다. // #1. RecyclerView.scrollToPosition(position: Int) // #2 RecyclerView.smoothScrollToPosition(position: Int) 이걸로 상황이 말끔히 해결된다면 그걸로 끝입니다. 하지만 때로는 위 함수로 부족한 경우가 있습니다. 예를 들어, 위 2개 함수를 통해 스크롤을 하게 되면 해당 아이템이 보이는 위치까지만 스크롤합니다. 다시 말해 내가 찾고자 하는 아이템을 최상단에 보여주도록 스크롤.. 2020. 11. 8. [Android] Architecture 정리 – AAC ViewModel, LiveData, Coroutine 본 포스팅은 Android 앱 개발 시 적용할 수 있는 여러 아키텍쳐 패턴들 중 Google에서 공식 문서를 통해 Recommend하는 방식을 소개하고자 합니다. 본문은 여기에서 확인하실 수 있으며, 본 포스팅에서는 이를 바탕으로 간단한 샘플 앱을 만들어 보고자 합니다. 크게 다루는 기술 셋은 다음과 같습니다. 기본적인 언어: Kotlin Jetpack – Lifecycles, LiveData, ViewModel 비동기 처리: Coroutine 각각에 대해 언급하기는 하지만, 최소한의 정보만을 공유하며 상세한 내용을 언급하지는 않습니다. (좀더 공부하여 세부적으로 다루도록 하겠습니다.) 각 기술 셋을 간단하게 사용하면서 최대한 아키텍쳐가 전반적으로 어떤 식으로 돌아가는지, 왜 필요하고 어떤 점에서 장점이.. 2020. 11. 8. [Android] View Binding Android에서는 현재 UI를 그리기 위해 XML을 사용하고 있습니다. (Compose는 논외로 합니다.) XML에 정의한 View widget들을 제어하기 위해서는 Java/Kotlin 코드로 작업을 해야하죠. 코드에서 해당 view들의 reference를 얻기 위해서 일반적으로 아래와 같은 방법을 사용합니다. // Java Button button = (Button) findViewById(R.id.button) // Kotlin val button = findViewById(R.id.button) 하지만 이미 Android 앱 개발을 좀 해보신 분이라면 아시겠지만 위와 같은 방식은 단점이 좀 있죠. 당연하게도 reference 얻어오는 방식이 불편합니다. 1~2개면 모르겠지마, 10개가 넘어가면 .. 2020. 11. 8. 이전 1 2 3 4 ··· 8 다음 반응형