개발 & 코딩/안드로이드 개발 팁 16

recyclerView 갱신할 때 깜빡거림 없애는 방법

recyclerView를 통해 리스트를 구현하고 삭제와 같은 리스트가 변경되는 동작을 구현했을 때 화면이 깜빡이는 현상이 나타날 때가 있다. 이 현상을 해결하는 방법으로는 2가지가 있으니 적용해보고 문제없는 쪽을 사용하면 되겠다. recyclerView로부터 ItemAnimator를 가져와 setSupportsChangeAnimations를 false로 설정하기 recyclerView로부터 ItemAnimator를 가져와 setChangeDuration값 0으로 설정하기 예제 코드) (fileExplorerList.getItemAnimator() as DefaultItemAnimator).setSupportsChangeAnimations(false) recyclerViewPicture?.getItemAn..

CustomTab 만들기

만들려는 모양은 아래 그림 참고 1) Tablayout을 생성한 뒤 3가지 설정을 추가한다. app:tabPaddingEnd="-1dp" app:tabPaddingStart="-1dp" app:tabIndicator="@null" 1,2번을 하지 않으면 빨간 표시 부분에 빈 공간이 남는다. 3번을 하지 않으면 default indicator가 보인다. 예제 코드) 이제 탭을 채워보자. custom이므로 이미지도 넣을 수 있고 어떤 것을 넣어도 상관없지만 나의 경우는 글자만 넣었다. 내용을 참고하면 변경은 어렵지 않다. 예제 코드) private fun setTab() { titleList.add(0,"1번") titleList.add(1,"2번") tabs.run { titleList.forEach { ..

CoordinatorLayout과 AppbarLayout을 이용하여 위쪽에 걸리는 느낌나는 스크롤 만들

1. CorrdinatorLayout 설명 1) FrameLayout같이 좌표를 자유롭게 지정 가능하다. 2) android sdk 24.1.0(Nougat)에 포함되어 있다. 3) 한 개의 parent 아래 포함된 여러 개의 child view를 behavior라는 것을 이용해서 다양한 애니메이션 효과를 표현해 낼 수 있다. 출처 : http://areemak.blogspot.com/2018/04/blog-post.html [Android] Coordinatorlayout 배워보기 #1 - AppbarLayout Coordinatorlayout 배워보기 #1 요약 FrameLayout 같이 좌표를 자유롭게 지정 가능하다. android sdk 24.1.0(Nougat)에 포함되었다. 만약 compile..

안드로이드 스튜디오 업데이트 후 screenOrientation="protrait"부분의 빨간줄이 신경쓰인다면?

안드로이드 스튜디오를 업데이트한 후 어느샌가부터 Manifest에서 activity에 아래 그림과 같이 screenOrientation부분에 빨간 줄이 가는 걸 볼 수 있다. warnning 내용을 보면 Expecting 'android:screenOrientation="unspecified" or "fullSensor" for this activity 내용인 즉 큰 화면을 가진 단말 때문에 화면을 회전 가능하게 하지 않고 고정하는 것은 추천하지 않는다 정도의 의미이다. warnning이기 때문에 그냥 둬도 상관은 없지만 빨간줄이 신경 쓰이는 사람들을 위해 해결법을 소개한다. 없애는 방법은 간단하다. File -> Setting으로 간 다음 chrome을 검색하고 Activity is locked to ..

Android Manifest에서 <activity>에 설정하는 것들 몇가지 정리

1. android:exproted 이 요소는 다른 애플리케이션의 구성요소로 액티비티를 시작할 수 있는지 설정합니다. 할 수 있으면 "true", 할 수 없으면 "false"입니다. "false"인 경우, 해당 액티비티는 같은 애플리케이션의 구성요소 또는 사용자 ID가 같은 애플리케이션으로만 시작할 수 있습니다. 인텐트 필터를 사용하는 경우 이 요소를 "false"로 설정하면 안 됩니다. 이렇게 설정하고 앱이 액티비티를 호출하려 하면 시스템이 ActivityNotFoundException을 발생시킵니다. 대신 이에 대한 인텐트 필터를 설정하지 않아 다른 앱이 이 액티비티를 호출하지 못하게 방지해야 합니다. 인텐트 필터가 없는 경우, 이 요소의 기본값은 "false"입니다. 이 요소를 "true"로 설정하..

AndroidX에 대한 정리 및 Jetpack

1. AndroidX란? Android 9.0(API 수준 28)의 출시와 함께 Jetpack의 일부인 새로운 버전의 지원 라이브러리 AndroidX가 출시됐다. 기존 support라이브러리도 사용할 수 있으나 새로운 개발은 AndroidX에서 진행되기 때문에 변환하는 것이 좋다. (간편한 변환은 안드로이드 스튜디오에서 제공해준다.) 여기서 jetpack도 나왔으니 같이 정리해보자. 2.Android jetpack이란? Android jetpack은 멋진 Android앱을 만들기 위한 컴포넌트, 도구 및 지침 세트이다. Android Jetpack은 기존의 지원 라이브러리와 아키텍처 컴포넌트를 하나로 모아서, 다음과 같은 네가지 범주로 배열한다. Android Jetpack은 기본 Android 플랫폼에..

안드로이드 권한 설정 및 체크하기(Android 6.0이상은 필수)

1. 권한 설정하기 권한 설정을 위해선 AndroidManifest.xml에 등록을 해야한다. 이 중 위험 권한의 경우 체크를 통해 사용자의 동의가 필요하다. 위험권한 종류 : https://developer.android.com/guide/topics/security/permissions?hl=ko 시스템 권한 | Android 개발자 | Android Developers Permissions Google I/O 2015—Android M Permissions: Best Practices for Developers Android is a privilege-separated operating system, in which each application runs with a distinct system i..