2014-08-29 75 views
2

我在水平viewpager中有垂直viewpager。在horzontal viewpager I的第二個片段中,添加垂直viewpager。垂直viewpager包含帶有圖像的片段,所以當片段對用戶可見時,我必須開始爲圖像設置動畫效果,用於setUserVisibleHint。但是,當移動到水平viewpager的第二個片段時,垂直viewpager內部片段的setUserVisibleHint不會被調用。我試過所有的方法,oncreate,oncreateview ..但沒有爲我工作。我被困在這裏,請幫助我在這Android中的嵌套viewpager問題

回答

3

老問題,但我打這個,並認爲我可能會幫助像我這樣的人在未來。當你有一個包含(外部)片段的外部viewpager時,就會出現問題,這些片段本身包含內部視圖片段(內部)片段。在外部片段之間移動時,不會調用顯示在內部viewpager中的當前片段的setUserVisibleHint。我正在使用FragmentStatePagerAdaptor來控制我的視圖頁面。

甲定爲這是子類FragmentStatePagerAdaptor以暴露主片段,並提供一個setUserVisibleHint方法:

@Override 
public void setUserVisibleHint(boolean isVisible) { 
    super.setUserVisibleHint(isVisible); 
    if (mAdaptor != null) mAdaptor.setUserVisibleHint(isVisible); 
} 
+0

很好工作:

public class CustomPagerAdaptor extends FragmentStatePagerAdaptor { private Fragment primary; @Override public void setPrimaryItem(ViewGroup container, int position, Object object) { super.setPrimaryItem(container, position, object); primary = (Fragment)object; } public void setUserVisibleHint(boolean isVisible) { if (primary != null){ primary.setUserVisibleHint(isVisible); } } } 

然後在外部片段通過傳遞setUserVisibleHint。謝謝! – luca992 2015-08-21 21:41:36