在我的示例中,我在片段中有一个视图寻呼机,并且视图寻呼机中的选项卡是动态创建的。例如,我有三个主题的标签Sub 1
,Sub 2
,Sub 3
每个主题标签都有一些问题。现在我想要的是当我从一个标签切换到另一个标签时应该重新加载或刷新。
我已经谷歌了很多,我发现刷新片段是
Fragment currentFragment = getFragmentManager().findFragmentByTag("FRAGMENT");
FragmentTransaction fragTransaction = getFragmentManager().beginTransaction();
fragTransaction.detach(currentFragment);
fragTransaction.attach(currentFragment);
fragTransaction.commit();
这是刷新Tab片段或任何建议的唯一方法吗?
答案 0 :(得分:1)
从您的问题中可以清楚地看到,第一次加载时您可以正常工作。因此加载了一些,当用户滑动选项卡时刷新片段,您可以覆盖在viewpager中加载的Fragment类中的setUserVisibleHint
方法。
您可以这样做:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
if (isVisibleToUser){
//This means this fragment is visible to user so you can write code to refresh the fragment here by reloaded the data.
}
}
注意:在onCreateView之前调用setUserVisibleHint,这样就可以了 第一次加载片段时不起作用。