2024.02.14(수) TIL

quinones·2024년 2월 14일

프래그먼트화면에서 유튜브 쇼츠처럼 화면전체에 동영상을 띄우고, 화면을 스크롤로 넘기는 로직을 구현했다. 근데 스크롤을 하면 다음화면으로 알맞게 넘어가지 않고 두개의 영상이 애매하게 겹치는 문제가 발생했다. 이 문제를 해결해보았다.

val displayMetrics = DisplayMetrics()
(binding.root.context.getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay.getMetrics(displayMetrics) 
val layoutParams = youtubePlayer.layoutParams 
layoutParams.width = displayMetrics.widthPixels
layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT 
youtubePlayer.layoutParams = layoutParams

영상을 띄워주는 리사이클러뷰의 어뎁터에서 이렇게 설정해줬다.
displayMetrics객체를 생성해주고,
디바이스의 기본 디스플레이에 대한 측정값을 가져와준다.
다음으로 youtubePlayer변수의 레이아웃 매개변수를 가져오고,
layoutParams의 너비를 디바이스 화면의 픽셀 너비로 설정해준후에
높이를 최대로 설정해주고,
최종적으로 설정된 레이아웃 매개변수를 youtubePlayer에 적용시켜주었다.

다음으로 프래그먼트안에서

val snapHelper = PagerSnapHelper()
snapHelper.attachToRecyclerView(shorts)

이렇게 선언해주면 화면을 스크롤하면 다음화면으로 알맞게 영상이 들어온다.!


화면스크롤
리사이클러뷰데이터
스크롤시알맞는사이즈
다음데이터가져오기

profile
이우진

0개의 댓글