데이터 집합들을 개별 아이템 단위로 구성하여 화면에 출력해주는 뷰 그룹. 리스트 형태로 표시해주는 위젯. 동일한 형식을 갖는 리스트들을 구현할 때 주로 사용.ListView에서는 리스트 수 만큼 getView()를 호출하는 반면, RecyclerView는 ViewHol
멀티 뷰 타입 리사이클러뷰 만들기 방법은 쉽다! onCreateViewHolder의 viewType으로 분기해서 뷰홀더를 만들어주면 됨!! (물론 이때 뷰홀더 클래스도 여러개 만들어줘야하고, 리턴 타입 RecyclerView.ViewHolder로 바꿔줘야함)아니 근
끝까지 당겼을 때 바운싱 되는 효과 삭제 android:overScrollMode="never" 리사이이클클러러뷰 자자체체에 android:clipToPadding="false"
Activity LifeCycle onCreate 필수 구현. 전체 lifeCycle 중에 한번만 발생. xml, 멤버변수 정의, 일부 UI 구성 onStart 액티비티가 활성상태에 진입시 호출. 화면에 보여지고 상호작용하는 것을 준비한다. UI 관리하는 코드 초기
Model- View - ViewModel 패턴에서 View와 Model 사이에서 데이터를 관리해주고 바인딩해주는 역할.lifecycle을 고려하여 데이터를 저장하고 관리하도록 설계된 클래스.MVVM에 관한 내용은 언급되어있지 않음.이를 이용하면 기존의 Activity
CoroutineScope를 이용해 코루틴을 사용하지만, 이를 lifecycle에 맞추어 사용할 수 있다. 뷰모델에서 더 편리하게 만들어준 것이 CoroutineScope.LifeCycleOwner의 lifecycle에 엮여있다 -> lifecycle이 Destroye
현재 안드로이드에서 dataStore 사용을 적극 권장. 개발자 문서에서도 sharedPreferences 사용 가이드 제거....프로토콜 버퍼를 사용하여 키-값 쌍 또는 Typed Object를 저장할 수 있는 저장소 솔루션.코루틴 및 flow를 이용하여 비동기적이고
.first()를 호출하면 됨!ref. https://kangmin1012.tistory.com/47
: non-null 변수에 null이 들어감;; 여기서 {"name":"Marketing"} 이런식으로 보내면 Employee(null, “Sangeun”) 와 같이 들어감. 여기서 포인트는 no 변수가 non-null이라는 것. 개무시하고 null이 들어가는데, 문법
은 HTTP API를 별도 조작 없이 쉽게 응답을 객체로 변환해주는 라이브러리이다. 코틀린을 사용한다면 API 호출 시 내부적으로 요청이 이루어져서 따로 콜백을 정의할 필요없이 응답객체를 받을 수 있다. 그러나 만약 API호출 시 에러가 발생하거나, 기대하지 않는 응답
안드로이드 New->Fragment 로 프래그먼트를 생성해보면, 이렇게 newInstance함수를 자동으로 만들어주는데, @JvmStatic이라는 어노테이션을 볼 수 있다. @JvmStatic가 뭘까? > 결론: Java의 static 처럼 쓰기 위함. 설명,,,
가장 기본적으로 쓰는 scrollview.. 이 안에 리사이클러뷰를 넣으면 리사이클러뷰 스크롤이 안되고 전체 스크롤 뷰가 움직이는 현상이 있었다.그래서 쓰게된,,이걸 쓰고 나면 이제 스크롤도 되고 리사이클러뷰 스크롤도 잘 됐다! 그러나,,,!!!! 가끔 스크롤을 하다보
Fragment는 Activity나 다른 Fragment에 호스팅되어야함. 이때, Activity는 FragmentActivity 를 상속하는 Activity여야하는데, AppCompatActivity는 FragmentActivity를 상속하고 있으므로 ok방법 1:
java.lang.IllegalStateExeption: Can not perform this action after onSaveInstatnceState문제의 원인은 Activity의 onSaveInstanceState()가 호출된 후에 FragmentTransact
기존 Rx에서 이중클릭/다중클릭 방지하기 위해 throttleFirst를 사용했었다.Coroutine에서는 어떻게 이중클릭을 방지할 수 있을까?CoroutineScope과 AppCompatActivity를 구현/상속한 BaseOneClickActivity를 만든다. 그
프래그먼트에 lazy로 어떤 변수를 선언해두고 썼는데, 얘가 다시 돌아왔을 때 제대로 동작을 안함.예) 여기서 FragmentB로 갔다가 다시 A로 돌아왔을때 tabList가 제대로 작동하지 않음.기본적으로 프래그먼트는 제거 될때, 뷰를 파괴한다. 그러나 lazy변수는
왜냐면, 셀렉터 속성에 drawable밖에 없기 때문.(color로 선언할 수 있는 속성이 없음)그냥 이렇게 color.xml 파일에 drawable 태그로 색상을 선언해주면 된다.그럼 이렇게 drawable 속성에 위에서 만든 color를 넣어줄 수 있다!왜냐면 각
이렇게 해도 익셉션만 먹는거라 세로모드 고정 됨. themes.xml manifest.xml
현상A뷰타입이 불리는 이벤트가 계속해서 들어오면 A뷰타입이 계속해서 불린다. 이 경우 A뷰는 절대 변하지 않을것이므로 애니메이션 처리도 없이 가만히 있기를 바람.\-> itemAnimator에 A뷰타입인 경우 재사용하지 않도록 itemAnimator 적용.클릭이벤트를
웹뷰 옵션 세팅에 mediaPlaybackRequireUserGesture = false웹뷰 chromeClient의 onPermissionRequest에 RESOURCE_VIDEO_CAPTURE 권한 추가2번 onPermissionRequest 함수에서 super.o
constraint 모두 연결하기(bottom 특히), height는 0dp 주지 않기.layout_constrainedHeight 속성에 true 주기