2016-11-23 41 views
0

我有兩個片段(在這個問題中稱爲A和B),我把它們放在ViewPager中。
我需要跟蹤記錄每個片段出現的時間。如何在ViewPager和FragmentPagerAdapter中正確跟蹤?

例如A和B放在ViewPager上。 A在左側,B在右側。

要求如下。

在ViewPager:

  • 音軌A,當用戶第一次打開ViewPager因爲A是出現在第一位。

  • 當A上的用戶由於B出現而向左滑動ViewPager時跟蹤B.

  • 跟蹤A當用戶在B上滑動右側ViewPager,因爲A出現。

在更改應用程序:

  • 音軌A當在打開其他應用程序的用戶,並返回到該片段。
  • 跟蹤B當B上的用戶打開其他應用並返回到該片段時。

在片段交易:

  • 音軌A當上一展身手的用戶到其他片段或活動,並返回到該片段。
  • 當B上的用戶轉到其他片段或活動並返回到該片段時跟蹤B.

上混用狀況:

  • 音軌A當在去其他片段或活動,然後用戶更改應用程序,然後返回到這個程序,並回到A片段。
  • 跟蹤B當B上的用戶轉到其他framgnet或活動,然後更改應用程序,然後返回到此應用程序並返回到B片段。

在不保留活動模式和保持活動模式下,我想跟蹤我指定的內容。

回答

0

你應該重寫你的碎片setUserVisibleHint方法,它會告訴你,當用戶專注於特定片段

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

    } 
} 
+0

謝謝。但是'setUserVisibleHint'不會以'isVisibleToUser'和'isResumed'爲真的情況被調用,這時首先出現片段。當轉到其他片段並且返回到原始片段時,該方法不會被調用。 – kykomi

0

您可以使用viewPager.addOnPageChangeListener得到尋呼機的當前頁面。

希望這會有所幫助。

+0

謝謝,但是當片段首先出現時,偵聽器方法不會被調用。 – kykomi