0

viewArea에서 MainActivity에서 4 개의 조각을 사용하고 있는데, viewPager는 스크롤 할 수없고, 두 번째 조각은 MainActivity 조각의 두 번째 조각 안에 있습니다. onCreateView 메소드의 모든 조각에서 API를 호출합니다. 하지만 액티비티가 초기화 될 때 모든 조각 onCreateView 메서드가 실행되고, 조각은 내 API 호출보다 표시되기 때문에 원하는대로 수정해야합니다.조각 내 조각 사용

이미 작업을 초기화 할 때 setUserVisibleHint 메서드를 사용해 보았습니다.

이 문제를 해결하기 위해 프레임 레이아웃이나 다른 것을 사용해야합니까?

+0

'setVisibility'가 호출 될 때, 당신은 매개 변수'visibleToUser'를 검사하고 있습니까? 현재 표시되는 단편은 true이어야하고 다른 단편은 false 여야합니다. –

+0

체크했지만 isVisibleToUser 부울 액티비티가 조각 어댑터를 설정할 때 모든 프래그먼트에 대해 참이됩니다. –

답변

0

잘 이해했다면 파편이 보이면 API를 호출하고 싶을 것입니다.

예 다음 그럼 그냥

편집 you'r API를 호출 할 좋은 조건을

viewPager.addOnPageChangeListener 

및 onPageSelected (INT 위치) 콜백을 사용하는 경우는 '내가 돈 viewPager

+0

FragmentPagerAdapter를 사용 중입니다. addonPageChangeListener 메소드를 찾을 수 없습니다. viewPager.addOnPagerChangeListener를 의미합니까? –

+0

그렇습니다 ofcourse는 나쁘고 미안합니다 :) 그 어댑터 메서드 인 inkotlin은 mViewPager.addOnPageChangeListener (객체 : ViewPager.OnPageChangeListener {}) – sigma119

0

를 어댑터를 변경 왜 당신이 그들을 사용하지 않을 때 같은 시간에 모든 조각을로드하는지 모르겠다.

하지만 어쨌든 당신의 프래그먼트가 단편 스택의 맨 위에있을 때 (보여지는) 각 단편에서 Resume에 API 호출 메소드를 넣어야한다고 생각합니다.

+0

입니다. 그런 다음 모든 조각을로드하고 싶지 않으면 어떻게해야합니까? –

+0

나는 당신이 무엇을하려고하는지 알지 못한다. 그러나 나는 추측 할 때마다 조각을 보여줄 필요가있을 때마다 그것으로 당신의 활동 내용을 대체 할 뿐이다. YourFragment fragment = new YourFragment(); getSupportFragmentManager(). beginTransaction(). replace (R.id.content, fragment) .commit(); –