일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Fragment 수동 추가
- Error:Execution failed for task ':app:mergeDebugResources'
- 생명주기
- 안드로이드스튜디오
- 코틀린
- adapter
- 재사용
- Android
- 스와이프
- viewholder
- high order function
- recyclerview
- 코딜리티
- LayoutManger
- 리사이클러뷰
- espresso
- 안드로이드
- binding adapter
- 안드로이드개발레벨업교과서
- IntentTestRule
- 뷰변경 감지
- searchview
- ui test
- 테마 아이콘
- 안드로이드13
- Fragment에서 Activity의 함수 사용하기
- 구분선
- 고차함수
- ActivityTestRule
- fragment
- Today
- Total
목록개발/안드로이드 개발 (101)
룬아님의 취중코딩
databinding에서 특정 뷰의 상태에 따라 바꾸어 줘야하는 경우가 있다. databinding에서 id는 camel-case로 변환되기 때문에 android:visibility="@{btn_list.visibility}"/> 이렇게 대신 android:visibility="@{btnList.visibility}"/> 이렇게 사용해야 한다.
Databinding을 사용할 때 조건문을 통하여 뷰를 처리하는 경우가 많은데 &&을 사용하니 빌드가 되지 않았다. 이는 레이아웃을 XML을 이용하여 구현하기 때문인데 '&' --> '&' 이런식으로 치환해서 적어주면 된다. android:text="@{(1==1 && 2>0) ? `true` : `false`}"
editText가 포함되어 있는 화면에서 처음 진입시에 cursor는 반짝이고 있지만 키보드는 올라오지 않은 상태를 구현하려고 하였다. cursor를 표시하기 위해서 editText에서 requestFocus()를 호출하였는데 eidtText에 focus를 주니 가끔씩 터치를 하지 않아도 화면에 들어가자 마자 키보드가 올라오는 문제가 생겼다. 이를 해결하기 위해서 Manifest의 해당 activity에 android:windowSoftInputMode="adjustResize|stateHidden" stateHidden을 적용시켜 화면 진입시에 키보드가 뜨지 않도록 설정하였다.
scrollToPosition을 사용하면 남은 아이템 상황에 따라 상단에 맞춰서 scroll되거나 중간에 보이도록 scroll 되는 등 상황에 따라 다른 동작을 하였기 때문에 기능 구현에 사용하기 어려웠다. recyclerview의 특정 아이템을 화면의 상단에 위치하고 싶다면 scrollToPositionWithOffset을 사용하면 된다. 뒤쪽의 offset이 탑과의 거리를 뜻하기 때문에 layoutManager.scrollToPositionWithOffset(lastReadPosition, 0) offset을 0으로 주면 상단에 붙게 된다. 또한 int centerOfScreen = recyclerView.getWidth() / 2; layoutManager.scrollToPositionWithOff..