如何重新启动tablayout的片段

时间:2017-07-14 06:25:13

标签: android tabs

  @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

我第二次点击菜单时没有重新加载片段 enter image description here

我需要重新加载片段,因为它不会重新加载它们。 请帮忙。

1 个答案:

答案 0 :(得分: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
    }
 }
相关问题