我有三个标签(使用Fragments / ViewPager / SupportLibrary / FragmentActivity)。
左侧选项卡在初始加载时使用ProgressDialog。但我默认使用中心选项卡。然而,当我第一次进入此活动并登陆该中心选项卡时,选项卡#1中的ProgressDialog显示在选项卡#2(中心)上。
有没有办法阻止这种情况?
答案 0 :(得分:0)
我使用布尔语阻止了这一点。我不认为这是一个非常干净的方式。选择选项卡时,只需将布尔值设置为true,并仅在选中选项卡时执行asynctask。
所以在我的MainActivity中我有一个3的数组
public static boolean[] selected = new boolean[3];
(静态与我使用的外部类有关,在你的情况下可能不需要)
我使用说明
指示每个标签public void onTabSelected(Tab tab, android.app.FragmentTransaction ft)
{
getSupportFragmentManager().popBackStack();
if (tab.getContentDescription() == "tab1")
{
mViewPager.setAdapter(mAppSectionsPagerAdapter);
selected[0] = true;
selected[1] = false;
selected[2] = false;
mAppSectionsPagerAdapter.notifyDataSetChanged();
}
if (tab.getContentDescription() == "tab2")
{
mViewPager.setAdapter(mAppSectionsPagerAdapter);
selected[0] = false;
selected[1] = true;
selected[2] = false;
mAppSectionsPagerAdapter.notifyDataSetChanged();
}
if (tab.getContentDescription() == "tab3")
{
mViewPager.setAdapter(mAppSectionsPagerAdapter);
selected[0] = false;
selected[1] = false;
selected[2] = true;
mAppSectionsPagerAdapter.notifyDataSetChanged();
}
片段:
if (MainActivity.selected[0])
{
// asynctask fragment
}