본문 바로가기

분류 전체보기

(23)
Execution failed for task ':app:kaptDebugKotlin'. Execution failed for task ':app:kaptDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException (no error message) 진심으로 하루 종~일 빌드에러가 나서 고생했던 문제다. assemble로 돌려봐도 어디서 에러가 나는지 정확히 알 수가 없었다. 구글링해도 정확한 이유도 없고... kotlin 버전이나 자바 버전 이야기가 있어서 모두 바꿔봤는데 안됐다. gradle 에 들어가는 모든 버전들을 수정해보며 하루종일 빌드했다. 결론은 compileSdkVersion 이..
[Kotlin] 현재 화면의 크기를 가져오는 방법 연습용 앱이 아닌 출시용 앱은 천차만별인 안드로이드 단말들의 화면 크기를 커버할 수 있어야 한다. 특히 해외 출시의 경우, 플래그십 모델을 선호하는 한국과 달리 다양한 크기의 화면들을 사용하고 있어 더욱 중요한 것 같다. 기존에 알려져 있는 방법인 windowManager.defaultDisplay ~ 는 deprecated 되어서, 이 방법이 코틀린의 최신 버전인 것 같다. val height = resources.displayMetrics.heightPixels val width = resources.displayMetrics.widthPixels 여기저기 쓸 수 있어서 기본적으로 알아놓아야 한다. val height = resources.displayMetrics.heightPixels * 8.0 ..
NestedScrollView 스크롤 위치가 이상할 때 바텀 슬라이딩 안에 RecyclerView 가 여러 개 들어가는 NestedScrollView 를 만들었다. 그런데 특정 단말기에서 스크롤의 포커스가 이상하게 두번째 리사이클러뷰에 맞춰지는 것을 발견. Note 10+ 에선 발생하지 않았던 문제였는데, s7으로 테스트하니 발견할 수 있었다. 이건 간단하게 해결할 수 있다. 하위 뷰들이 포커스를 받지 못하도록 하는 속성을 넣어주면 된다. NestedScrollView 를 사용할 때 포커스 문제를 종종 발견하는데, 이 속성을 추가하면 해결이 바로 가능하다. // recyclerView 를 감싸고 있는 ConstraintLayout // recylerView 들 여러개 참고. https://developer.android.com/reference/android..
구글 지도의 모양을 변경하고 싶을 때 (outlineProvider) 개발 중, 클라이언트의 요청에 따라 구글 지도에 아랫 부분만 라운딩을 넣어야할 때가 있었다. 보통 뷰의 코너에 라운딩을 넣을 때는 shape.xml 파일을 만들어서 background에 적용하고, clipToOutline을 사용하는 방법을 쓴다. 라운딩 요청이 개발 말미에 들어왔기 때문에, 기존에 만들어놓은 맵뷰를 최대한 고치지 않고 사용하고 싶었다. 처음엔 당연히 레이아웃 파일의 background를 사용했다. 그런데 이게 적용이 안되는 것! ... 신기한 건 사방 라운딩 xml 파일은 아주 쉽게 기본 방법으로 제대로 적용이 되었다 ^^... 아랫 부분만 라운딩 된 걸 인식을 못하더라... 아마도 height 문제인 것 같은데, FrameLayout으로도 감싸보고, Relative, Constraint..
개인정보처리방침 ('https://github.com/Recipe-Project/RecipeApp'이하 'Recipe Storage')은(는) 「개인정보 보호법」 제30조에 따라 정부주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2021년 5월 28부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://github.com/Recipe-Project/RecipeApp'이하 'Recipe Storage')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 겨우에는 「개인정보 보호법」 제18조에 따라 ..
⌨️ EditText 키보드 올리기/내리기 (Kotiln) 먼저, InputMethodManager인 imm을 만들어 줍니다.val imm = this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager 키보드 올리기imm.showSoftInput(binding.etSearchAddress, 0) 키보드 내리기imm.hideSoftInputFromWindow(binding.etSearchAddress.windowToken, 0) 엔터 누르면 자동으로 키보드 내리기binding.etSearchAddress.setOnKeyListener { v, keyCode, event -> if ((event.action == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent..
statusBar 색상, 텍스트 색상 변경
BottomNavigationView + TabLayout + ViewPager2 모두 이용해서 화면 만들기 (Kotlin) 먼저, BottomNavigationView를 만들어준다. 2020/12/11 - [안드로이드/앱 개발] - BottomNavigationView, Fragment BottomNavigationView, Fragment activity_main.xml color/bottom_navigation_color.xml menu/item_navigation.xml HomeFragment class HomeFragment : Fragment.. jsue.tistory.com BottomNavigation의 menu를 5개 만들었으므로, 각각의 Fragment 또한 5개를 만들어준다. 그 중 SearchFragment에서 TabLayout을 구현하고, 거기에 더해서 ViewPager를 이용해서 슬라이드로 탭 변경도 ..