2017-07-14 19 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 heretablayoutのフラグメントを再起動する方法

私はメニューをクリックして二回目は、それが彼らをリロードしていないので、私は、断片をリロードする必要が断片 enter image description here

をリロードしません。 助けてください。

答えて

0

ViewPagerはフラグメントを再開状態に保つため、使用できるコールバックは1つのみです。それは public void setUserVisibleHint(boolean isVisibleToUser)です。

GetContactsUserFragmentでこのメソッドをオーバーライドする必要があります。

そして、覚えておいて、初めてフラグメントがビューページャで作成されるときには、setUserVisibleHintがonCreate()よりも前に呼び出されることに注意してください。

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

過負荷にsetメソッドを使用する方法はありません:あなたはそのような何か(GetContactsUserFragment.java)それを使用することができ

EDIT 1

。 –

+0

@DinierArteaga編集1を参照 – Valentun

関連する問題