기어가는 피카츄
번역도 좋고 설명도 좋고 예시도 좋다 인 액션 시리즈는 모던 자바 인 액션으로 처음 접했던 것 같은데 코틀린 인 액션도 역시 훌륭하다 명절 내 읽었어도 Chapter 2개 밖에 읽지 못했다 현재 회사 프로젝트를 코틀린으로 갈아엎고 있는 중인데 최대한 많이 참고해서 리팩토링해야겠다
AndroidManifest.xml 을 열고 android:windowSoftInputMode의 설정을 adjustNothing으로 해주면 임시적으로 해결 가능 스택오버플로우에서 보고 급한대로 적용해봤는데 스마트 기기 개발자 모드에서 레이아웃 디버깅 모드로 확인해보면 여전히 툴바가 위로 올라가는 현상을 확인할 수 있다ㅠㅠㅠ 일단 야매방법이니 메모는 해두자
1. 안드로이드 스튜디오 Build 탭 > Build Bundle(s) or APK(s) > Build APK(s) 클릭 후 대기 2. 안드로이드 스듀디오 Build 탭 > Generate Signed Bundle or APK... 클릭 후 APK 파일 생성 3. 안드로이드 스튜디오 하단 Terminal 창에 C:\Users\{개인 폴더명}\AppData\Local\Android\Sdk\platform-tools> adb install -r "C:\Users\{개인 폴더명}\{개인 안드로이드 어플리케이션 설치 경로}\app\release\{개인 배포용 어플 명}.apk" 쌍따옴표 꼭 해줄 것
현재 프로젝트에서는 CoordinatorLayout L AppBarLayout L Toolbar (SwipeRefreshLayout의 움직임에 따라 Collapse/Expanded 감지) L TabLayout L TabItem L SwipeRefreshLayout L RelativeLayout L ViewPager (RecyclerView를 띄운다) L NetworkErrorPage (Include layout) (네트워크 에러 페이지) 레이아웃의 SwipeRefreshLayout 위치에 또 다른 Fragment를 Replace하는 방식으로 구현되어 있다. Replace되는 Fragment의 Layout은 다음과 같다. < fragment_commodity..
Release용으로 앱을 배포하게 될 때 지도를 띄우기 위해서는 Debug용 Keystore 외에도 추가 절차를 거쳐야 함 (1) cmd창에서 "C:\Program Files\Java\jdk1.7.0_80\bin\keytool.exe" -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android (C:\Program Files\Java\jdk1.7.0_80\bin\keytool.exe 는 내 컴퓨터 기준) 에서 SHA1키를 찾아 등록 또는 (2) Android Studio 우측 상단의 Gradle - app - Taks - android - signingReport 에서 SHA1키를 찾아 등록 1. ..
EditText에 입력된 문자가 없어도 커서가 입력되는 글자색으로 깜빡거리게 할 수 있다. 롤리팝(API 21)에서는 android:textCursorDrawable로 커서 색을 직접 변경해도 잘 적용된다. 그러나 파이(API 29)에서는 android:textCursorDrawable로 직접 커서 색을 설정할 경우 EditText에 입력된 문자가 없을 때 커서가 보이지 않고, 텍스트를 입력할 때 비로소 커서가 지정한 색으로 보이기 시작한다. 그런데 여기서 또 문제는 커서가 보이긴 하는데 깜빡 거리지를 않아... 구글링을 하다가 구버전 신버전 둘다 적용되는 코드 두 줄을 찾았다. android:textCursorDrawable="@null" android:textColor="@android:color/b..
태그로 동일 레이아웃을 중복적으로 여러개 사용하려고 할 경우 각 태그 안에 서로 다른 아이디를 부여함에도 불구하고 이 AwesomeValidation 라이브러리가 첫번째 TextInputLayout에만 적용이 돼서 무엇이 문제일까 고민하다가 로그를 찍어봄. mValidator.addValidation( getActivity(), mBinding.cvRetail.tlPrice.getId(), RegexTemplate.NOT_EMPTY, R.string.input_text); mValidator.addValidation( getActivity(), mBinding.cvWholesale.tlPrice.getId(), RegexTemplate.NOT_EMPTY, R.string.input_text); addVa..
Activity가 하나라도 존재하면 안드로이드는 Application 객체도 하나 생성한다. Application 객체는 Activity 객체의 생성 소멸과 관계없이 여전히 존재하며 Activity보다 생애가 길다. 특정 객체를 싱글톤으로 생성하게 되면, 싱글톤 객체는 Application객체 전체 프로세스가 소멸되기 전까지는 일단 한번 생성되고 나면 소멸되지 않는다. 예를 들어 Database객체를 싱글톤으로 생성하는 이유는 Application 어디서든 같은 Database객체로 유지하려고 하는 목적이 있기 때문이다. Database에서 객체 참조를 유지하는 Context가 '특정 Activity'라면, Database가 싱글톤이기 때문에 한번 참조되고 나면 Database객체가 소멸되기 전까지는 계..