목록안드로이드(Android)/이것저것 만들어보기 (3)
Simple&Natural
가로 방향의 ViewPager2 내 세로 방향의 RecyclerView를 가지고 있는 fragment pager 를 사용하던 중 개선사항이 하나 들어왔다. 세로 방향으로 스크롤했는데 가끔씩 가로로 스크롤이 된다는것. 이 원인은 recyclerView와 viewPager2가 터치 이벤트를 서로 경쟁적으로 뺏어가기 때문이다. 세로로 스크롤을 했음에도 viewPager2가 터치 이벤트를 가로채버리는 것. 이를 해결하기 위해서는 recyclerView에서 먼저 스크롤 이벤트를 감지한 후 세로 방향의 스크롤이 더 크면 recyclerView에서 터치 이벤트를 처리하도록 하면 된다 계산해보면 수직 45도 각도를 기준으로 이보다 각도가 작게 스크롤하면 viewPager2가, 이보다 각도가 커지면 recyclerVie..
우측에 하나의 View를 고정값으로 두고 TextView를 가변길이 + Ellipsize 처리하려고 할 때 맨 아래와 같이 작성한다. 핵심은 아래의 세 줄이다. android:layout_width="wrap_content" ... app:layout_constrainedWidth="true" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_chainStyle="packed" constrainedWidth를 true로 설정하여 레이아웃 범위를 초과하지 않도록 제약을 걸어주고 bias를 0.0으로 설정하여 좌측으로 정렬한 뒤 chainStyle을 pack으로 설정하여 바로 다음 레이아웃 옆에 차곡차곡 쌓이는 구조로 만들어..
UI를 구현하거나 앱들을 쓰다 보면 보면 특정 editText에 콤마나 단위 등을 고정하여 표시하는 경우가 있습니다. 예를 들면 은행 앱에서 출금 시 자동으로 콤마를 붙여주고 뒤에 '원'이 붙는 경우를 한 번 쯤은 보셨을 겁니다. 이런 화면은 어떻게 구현해야 할까요? 바로 TextWatcher를 사용하면 됩니다. TextWatcher는 안드로이드에서 제공하는 인터페이스로서 EditText의 텍스트 입력이 들어올 때 마다 콜백이 호출됩니다. 3가지 함수를 오버라이드 하게 되는데요. beforeTextChanged onTextChanged afterTextChanged 가 있습니다. beforeTextChanged는 바뀌기 전의 입력을 알 수 있고 onTextChanged는 바뀐 후의 입력을 알 수 있습니다..