2017-12-14 3 views
1

프래그먼트가 표시 될 때 어떻게 감지되는지,이 질문을 검색하여 많은 답을 얻었습니다.표시 될 때 프래그먼트 감지에 대한 실제 응답

1. setUserVisibleHint()을 사용하십시오.이 메소드는 항상 호출되지 않으며 자동으로 호출되지 않습니다. 예를 들어,이 코드를 만들었습니다.

이 메서드는 viewPager의 첫 번째 항목에 대해 호출되지 않습니다. 이것은 이것이 진정으로 효과가 없다는 것을 의미합니다.

2. onHiddenChanged()을 사용하십시오.이 대답은 사실 이었지만 지금은 효과가 없습니다. 나는이 코드를 조각으로 검사했다. 그러나 이것은 때때로 부르지 않습니다.

@Override 
public void onHiddenChanged(boolean hidden) { 
    super.onHiddenChanged(hidden); 
    Log.e(TAG , " "+hidden); 
} 

3. setOnPageChangeListener 같은 viewPager에서 페이징에 대한 몇 가지 아이디어 : 주목, 나는 모든 시간에 대한 조각에 진정한 답변을 원한다. 그냥 ... viewPager 또는 다른 뷰

내가이 링크 ANAD에서 답을 얻었다위한 :

How to determine when Fragment becomes visible in ViewPager

Detect when fragment becomes visible [duplicate]

어느 하나에 해당하는 대답으로 나를 도울 수 있습니까?

+0

이 태그를 자동으로 검색합니다. :) – b4hr4m

+0

그래. . . . . . . . . – b4hr4m

+0

예. 그건 사실이야. 하지만 시스템 태그를 변경하지 않는 것이 더 낫다고 생각합니다. – b4hr4m

답변

0

나는 setUserVisibleHint를 사용하며 완벽하게 작동합니다. 당신이주는 것을 잊어 버린 것 같아요 super.setUserVisibleHint (isVisibleToUser); setUserVisibleHint 함수 내에서.

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if (isVisibleToUser) { 
     //When fragment is visible 
    } 
} 

희망이므로 도움이 될 것입니다.
감사합니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 다시 눈에 보이는 자동 감지하지 않습니다. – b4hr4m

관련 문제