@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);
}
我需要重新加载片段,因为它不会重新加载它们。 请帮忙。
答案 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
}
}