ViewPagerIndicator - 在滑动之前调用onActivityCreated

时间:2013-02-06 01:36:04

标签: android viewpagerindicator

我目前有一个带有三个标签1,2和3的viewpageindicator。 问题是当我滑动到选项卡2时,正在调用片段3中的onActivityCreated。

在我的tab 3片段中,我将调用onyntask onActivityCreated,因此当切换片段2时,它将加载asyntask。

2 个答案:

答案 0 :(得分:1)

我认为您最好的选择是确定片段是否可见,以决定是否应该显示您的对话框。您可以在此处了解如何执行此操作:How to determine when Fragment becomes visible in ViewPager

您可能应该考虑重新设计此交互,viewpager旨在轻松地在视图之间滑动,弹出对话框可能会让您感到困惑。

答案 1 :(得分:1)

默认情况下,ViewPagers在当前片段的任一侧加载一个片段。要知道片段何时位于中心,您可以将ViewPager的onPageChangeListener与每个Fragment子类实现的接口结合使用。

public interface FragmentChangeListener
{
void onCentered();
}

在每个片段中实现此接口

public class CustomFragment extends Fragment implements FragmentChangeListener
{
....
 @Override
 public void onCentered()
 {
 //Show alertDialog and start asyncTask
 }
}

在您的Activity类中:

ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
{
  @Override
  public void onPageSelected(int position)
  {
    FragmentChangeListener listener = (FragmentChangeListener) //cast fragment at this position to FragmentChangeListener
    listener.onCentered();
  }
}