我在标签视图中使用了查看分页器我的活动中有3个标签。每个标签都有一个片段。我在所有选项卡的OnCreateView中调用了asyncTask。一切都很好。但问题是当我第一个选项卡上的asynctask来自所有其他第二个选项卡或第三个选项卡也会在第一个选项卡中调用。这是我的代码片段。
TabActivity:
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
FirstTab:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_current, container, false);
RequestNetworkcall();
return view;}
我在最近2天的租约中遇到了这个问题,请帮助我们。
答案 0 :(得分:0)
Viewpager总是初始化它的三个页面,就像它可见一样。 这意味着你的所有页面都已经调用了他们的onResume()方法。
当选择该页面时,您需要调用您的asynctask。
更新:
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == 3) {
//Call your asynctask here
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});