일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 이펙티브 코틀린
- Rxjava 안드로이드
- RxKotiln
- 이펙티브코틀린
- 잡담
- 코딩테스트
- 개발자
- 프로그래머스
- 일상
- 코루틴
- 안드로이드 컴포즈
- Java
- Flutter
- 안드로이드 스와이프 삭제
- Go언어
- 안드로이드 컴포즈 SideEffect
- Firebase
- 반응형 프로그래밍
- Kotiln
- RxJava
- react
- 안드로이드
- MVVM
- 코틀린
- 알고리즘
- 안드로이드 개발자
- 안드로이드 다이얼로그
- Dev6
- android
- android compose
- Today
- Total
목록Android/Android UI (6)
최데브는 오늘도 프로그래밍을 한다.
프로젝트를 하다가 간만에 Viewpager 를 쓸일이 생겼다. 뷰페이저 자체가 예전부터 있었다보니 여러가지 방법으로 구현하는 방식이 있는데 이번에 나는 ViewPager2 와 FragmentStateAdapter 를 이용해서 만들어 보기로 했다. 먼저 ViewPager 가 지원중단되고 ViewPager2 로 몇년전에 넘어가게 됐는데 알아보는김에 왜 바뀌게 됐는지도 한번 알아보자. 대표적인 ViewPager 의 문제는 1. 리사이클러뷰에 뷰페이저를 집어 넣을때 발생한다. 뷰페이저는 PagerAdapter 기반으로 구성됐는데 스크롤을 할때마다 instantiateltem() 과 destroyItem() 메소드가 호출되면서 스크롤이 버벅거리는 문제가 있었다. * instantiateltem() : 화면에 표시..
최근 Dev6 프로젝트를 새로 개발하면 스플래시 스크린을 만들일이 생겼다. 이번에 스플래시 스크린을 만들면서 안드로이드 12 부터 바뀐 스플래시 스크린을 적용해보며 정리하는 글이다. 먼저 라이브러리를 추가하자. dependencies { implementation 'androidx.core:core-splashscreen:1.0.0-beta01' } 위 처럼 스플래시 스크린 라이브러리를 import 해준다. 이 라이브러리를 사용하려면 minSdk 는 21이상 , targetSdk 는 31 이니 참고하자. themes.xml 에 스플래시 스크린 테마를 추가하자. 이렇게만 보여주면 뭐가 무슨 옵션인지 찾아보기 귀찮으니 몇개 적어보자. windowSplashScreenBackground: splashscree..
xml 에 다른 xml 파일을 include 하여 해당 xml에 포함되게 사용할수가 있는데 이때 그냥 해당 액티비티의 id로 view binding 을 하면 참조가 되지 않는다. 이때는 private lateinit var exampleBinding: InclueTopBinding exampleBinding = InclueTopBinding.inflate(layoutInflater) exampleBinding.tvLeft.setOnClickListener { findNavController().popBackStack() } include_top.xml 을 binding 했다. InclueTopBinding 은 해당 include xml 을 바인딩 한 것 tvLeft 는 include_top.xml 에 있..
안드로이드에서 Text를 Select 즉 드래그 했을때 나오는 툴들을 변경하고 싶을때가 있다. 예를 들면, 이런식으로, Important를 꾹~ 눌려서 (Long press) Text를 Select한 뒤에 나오는 메뉴에서 '퀵번역'을 추가 하고 싶을 수 있다. 이런걸 구현하려고 하면 간단하게 함수 하나만 override하면 된다. @Override public void onActionModeStarted(final android.view.ActionMode mode) { Menu menu = mode.getMenu(); menu.add("퀵번역") .setEnabled(true) .setVisible(true) .setOnMenuItemClickListener(item -> { //해당 메뉴를 눌렸을 때..
간혹 앱을 사용하다보면 위아래로 슬라이드 하면서 크기가 늘어났다가 줄어들었다가 하는 화면을 찾아 볼 수 있다. 이런 화면들 말이다. 밑의 레이아웃을 위로 당기면 높이가 늘어나고 내려도 다 사라지지는 않고 남아있는 형태의 sheet. 이런걸 만들고 싶었는데 어떻게 하면 좋을지 고민하다가 한번 만들어봤다. 언제나 그렇듯 코드로 알아보자. CoordinatorLayout 이라는게 눈에 띈다. CoordinatorLayout 은 FrameLayout 같이 좌표를 자유롭게 지정 가능하다. 한개의 parent 아래 포함된 여러개의 child view 를 behavior 라는 것을 이용해서 다양한 애니메이션 효과를 표현해 낼 수 있다. 라고 간단하게 설명가능하다 . 나처럼 바텀시트에 사용할 수도 있고 , 밑으로 스크..
참고자료 메모 https://github.com/material-components/material-components-android-examples GitHub - material-components/material-components-android-examples: Companion example apps and code for MDC-Android. Companion example apps and code for MDC-Android. Contribute to material-components/material-components-android-examples development by creating an account on GitHub. github.com https://github.com/mj..