본문 바로가기
개발 메모

ViewPager, setSystemUiVisibility, Deque, ListIterator

by ESHC 2022. 3. 8.

ViewPager2 안에 ViewPager2가 있는 중첩된 구조는 지원되지 않는다고 한다.

https://developer.android.com/training/animation/vp2-migration#nested-scrollables

자세한 사항은 위 링크에서 확인 할 수 있다.

 

requestDisallowInterceptTouchEvent()를 이용하여 상위 ViewPager2의 터치 이벤트를 가로채는 것으로 해결 할 수 있는데 링크의 샘플 파일을 이용하면 쉽게 해결이 가능하였다.


Android 11 이상부터는 setSystemUiVisibility 가 deprecated되어서

전체화면 등을 구현할 때 insetsController을 이용한다. 

 

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
                window.decorView.systemUiVisibility =
                    (View.SYSTEM_UI_FLAG_IMMERSIVE or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                            or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                            or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            // Hide the nav bar and status bar
                            or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                            or View.SYSTEM_UI_FLAG_FULLSCREEN)
            } 
            else {
                window.setDecorFitsSystemWindows(false)
                window.insetsController!!.hide(WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars())
                window.insetsController!!.systemBarsBehavior =
                    WindowInsetsController.BEHAVIOR_SHOW_BARS_BY_SWIPE
            }

Deque를 선언할 때 LinkedList ArrayDeque를 이용할 수 있다.

일반적인 Deque 사용인 양 끝에 값을 추가하거나 삭제할 때등 일반적으로는 ArrayDeque가 빠르고

LinkedList는 iteration동안 그 시점의 값을 삭제할 때 더 빠르다고 한다.

참고 : https://stackoverflow.com/questions/6163166/why-is-arraydeque-better-than-linkedlist 

 

Why is ArrayDeque better than LinkedList

I am trying to to understand why Java's ArrayDeque is better than Java's LinkedList as they both implement Deque interface. I hardly see someone using ArrayDeque in their code. If someone sheds m...

stackoverflow.com


ListIterator을 이용해서 List의 인덱스나 삽입, 삭제를 빠르게 구현할 수 있음

(참고 : https://godzz.tistory.com/11)

 

댓글