developer tip

Fragment 내에서 ViewPager 탭 변경 감지

copycodes 2020. 11. 17. 08:20
반응형

Fragment 내에서 ViewPager 탭 변경 감지


나는이 ViewPager여러 조각으로. 하나에서는 Fragment오디오를 재생합니다. 다른 조각으로 스 와이프하면 오디오 재생을 중지하고 싶습니다. 이제 다른 조각이에서 보이는지 어떻게 감지 ViewPager합니까?

재정의 onStoponHiddenChanged. 성공하지 못했습니다. 재정의하려면 "더 이상 활동하지 않음"메서드가 있어야합니다. 아니?


나는 약간의 파고를했고 ViewPager는 둘 다 호출 할 것입니다 : setUserVisibleHintsetMenuVisibility. setUserVisibleHint에setUserVisibleHint 대한 설명서가 다음과 같이 설명 했기 때문에 재정의 합니다 .

이 조각의 UI가 현재 사용자에게 표시되는지 여부에 대한 힌트를 시스템에 설정합니다. 이 힌트의 기본값은 true이며 조각 인스턴스 상태 저장 및 복원에서 지속됩니다. 앱은이를 false로 설정하여 프래그먼트의 UI가 표시되지 않거나 사용자에게 직접 표시되지 않음을 나타낼 수 있습니다. 이는 시스템에서 조각 수명주기 업데이트 또는 로더 순서 지정 동작과 같은 작업의 우선 순위를 지정하는 데 사용할 수 있습니다.

이 코드를 조각에 넣으십시오.

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);

    // Make sure that we are currently visible
    if (this.isVisible()) {
        // If we are becoming invisible, then...
        if (!isVisibleToUser) {
            Log.d("MyFragment", "Not visible anymore.  Stopping audio.");
            // TODO stop audio playback
        }
    }
}

참고 URL : https://stackoverflow.com/questions/9779397/detect-viewpager-tab-change-inside-fragment

반응형