2017-07-14 49 views
0
@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    ViewPager viewPager = (ViewPager) view.findViewById(R.id.viewpager); 

    setupViewPager(viewPager); 
    // Set Tabs inside Toolbar 
    TabLayout tabs = (TabLayout) view.findViewById(R.id.result_tabs); 
    tabs.setupWithViewPager(viewPager,true); 
} 


private void setupViewPager(ViewPager viewPager) { 

    SectionsPageAdapter adapter = new SectionsPageAdapter(getActivity().getSupportFragmentManager()); 
    adapter.addFragment(new GetContactsUserFragment(), "User Contacts"); 
    adapter.addFragment(new GetContactsPublicFragment(), "All Contacts"); 
    viewPager.setAdapter(adapter); 
} 

這是我第一次點擊菜單,如果我加載它們。 enter image description here如何重新啓動一個Tablayout的片段

我第二次單擊菜單上不重裝我需要重新加載片段的片段 enter image description here

,因爲它不重新載入。 請任何幫助。

回答

0

ViewPager使碎片處於恢復狀態,因此只能使用一個回調。這是一個 public void setUserVisibleHint(boolean isVisibleToUser)

您應該在GetContactsUserFragment中重寫此方法。

而且,請記住,第一次在viewpager中創建片段時,將在onCreate()之前調用setUserVisibleHint

編輯1

您可以使用它類似的東西(GetContactsUserFragment.java):

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if (isVisibleToUser) { 
     //fragment is visible now. Put refresh logic here 
    } 
 } 
+0

沒有辦法用一套方法超載。 –

+0

@DinierArteaga見編輯1 – Valentun