Android 活动启动时,ViewPager未加载到片段内部

Android 活动启动时,ViewPager未加载到片段内部,android,android-fragments,android-viewpager,android-tabs,Android,Android Fragments,Android Viewpager,Android Tabs,我有一个活动有选项卡(包括viewpager),每个选项卡都包含片段,viewpager位于活动的底部。当我的活动首次启动时,第0个选项卡加载并显示地图(在片段内),但查看页面未加载。当我切换选项卡并再次返回到mapfragment时,它将加载viewpager。为什么我的地图片段viewpager没有在第一次加载,我缺少了什么。请帮忙 main活动class public class MainActivity extends FragmentActivity implements

我有一个
活动
有选项卡(包括
viewpager
),每个选项卡都包含片段,viewpager位于
活动
的底部。当我的
活动
首次启动时,第0个选项卡加载并显示地图(在
片段
内),但
查看页面
未加载。当我切换选项卡并再次返回到map
fragment
时,它将加载
viewpager
。为什么我的地图片段
viewpager
没有在第一次加载,我缺少了什么。请帮忙

main活动
class

public class MainActivity extends FragmentActivity implements
        ActionBar.TabListene, GooglePlayServicesClient.ConnectionCallbacks,
        GooglePlayServicesClient.OnConnectionFailedListener {

    static GoogleMap map;
    static ViewPager mMap, mList,
                mSetting;

    ImagePAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try{

            mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            actionBar = getActionBar();
            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
            actionBar.setDisplayHomeAsUpEnabled(true);

            mSectionsPagerAdapter = new SectionsPagerAdapter(
                    getSupportFragmentManager());
            mViewPager = (ViewPager) findViewById(R.id.pager);
            mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                        @Override
                        public void onPageSelected(int position) {
                            actionBar.setSelectedNavigationItem(position);
                        }
                    });
            mAdapter = new ZAdapter(getApplicationContext(), mList);

            mViewPager.setAdapter(mSectionsPagerAdapter);

            for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
                actionBar.addTab(actionBar.newTab().setText(listTab[i]).setTabListener(this));
            }                   
        }catch(Exception e){
            Logger.writeLOG(LOG_TAG, "@onCreate ", e);
        }
    }
}
列表片段

public class ListFragment extends Fragment {
    View rootView = null;

    public Fragment newInstance() {
          return new ListFragment();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        if (null == savedInstanceState)rootView = inflater.inflate(R.layout.listfragment, container,false);

        ViewPager mPager = (ViewPager) rootView.findViewById(R.id.pagerAddList);

        MainActivity.mList = mPager ;
        mPager .setAdapter(mAdapter);
        mPager .setCurrentItem(0);
    }
}
MapFragment
class

public class SectionsPagerAdapter extends FragmentPagerAdapter {
    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
    }

    @Override
    public Fragment getItem(int position) {
        // TODO Auto-generated method stub

        switch (position) {
        case 0:
            return new MapFragment();
        case 1:
            return new ListFragment();
        case 2:
            return new SettingFragment();
        }
        return null;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return listTab.length;
    }
}
public class MapFragment extends Fragment {

    GoogleMap map;
    public Fragment newInstance() {
          return new MapFragment();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        try{
            Log.e("", "onCreateView");

            if (null == savedInstanceState) rootView = inflater.inflate(R.layout.lay_map, container, false);

                map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

                MainActivity.map = map;

                ViewPager mPager = (ViewPager) rootView.findViewById(R.id.pagerAddMap);

                MainActivity.mMap = mPager;
                mPager.setAdapter(mAdvertisementAdapter);
                mPager.setCurrentItem(0);   
        }
    }
}
public class SettingFragment extends Fragment {

    View rootView = null;

    public Fragment newInstance() {
        return new SettingFragment();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        try{
            if (null == savedInstanceState)rootView = inflater.inflate(R.layout.settinglayout, container,false);

            ViewPager mPager = (ViewPager) rootView.findViewById(R.id.pagerAddSetting);

            MainActivity.mSetting = mPager;

            mPager.setAdapter(mAdvertisementAdapter);
            mPager.setCurrentItem(0);
        }

        @Override
        public void onResultsSucceeded(String result) {

            mAdapter = new ImagePAdapter(listUrls);
            mLocatorGlobal.setListUrls(listUrls);

            if (mList != null) {
                mList.setAdapter(mAdapter);
            }
            if (mSetting != null) {
                mSetting.setAdapter(mAdapter);
            }
            if (mMap != null) {
                mMap.setAdapter(mAdapter);
            }   
        }   
    }
}
SettingFragment
class

public class SectionsPagerAdapter extends FragmentPagerAdapter {
    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
    }

    @Override
    public Fragment getItem(int position) {
        // TODO Auto-generated method stub

        switch (position) {
        case 0:
            return new MapFragment();
        case 1:
            return new ListFragment();
        case 2:
            return new SettingFragment();
        }
        return null;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return listTab.length;
    }
}
public class MapFragment extends Fragment {

    GoogleMap map;
    public Fragment newInstance() {
          return new MapFragment();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        try{
            Log.e("", "onCreateView");

            if (null == savedInstanceState) rootView = inflater.inflate(R.layout.lay_map, container, false);

                map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

                MainActivity.map = map;

                ViewPager mPager = (ViewPager) rootView.findViewById(R.id.pagerAddMap);

                MainActivity.mMap = mPager;
                mPager.setAdapter(mAdvertisementAdapter);
                mPager.setCurrentItem(0);   
        }
    }
}
public class SettingFragment extends Fragment {

    View rootView = null;

    public Fragment newInstance() {
        return new SettingFragment();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        try{
            if (null == savedInstanceState)rootView = inflater.inflate(R.layout.settinglayout, container,false);

            ViewPager mPager = (ViewPager) rootView.findViewById(R.id.pagerAddSetting);

            MainActivity.mSetting = mPager;

            mPager.setAdapter(mAdvertisementAdapter);
            mPager.setCurrentItem(0);
        }

        @Override
        public void onResultsSucceeded(String result) {

            mAdapter = new ImagePAdapter(listUrls);
            mLocatorGlobal.setListUrls(listUrls);

            if (mList != null) {
                mList.setAdapter(mAdapter);
            }
            if (mSetting != null) {
                mSetting.setAdapter(mAdapter);
            }
            if (mMap != null) {
                mMap.setAdapter(mAdapter);
            }   
        }   
    }
}

我认为这里的问题是在viewPager中使用地图片段,您能用任何其他片段替换它并重试吗


检查此项,如果问题是在viewPager内部使用map fragment

我认为这里的问题是在viewPager内部使用map fragment,是否可以将其替换为任何其他片段,然后重试


检查此项,如果问题是使用viewPager内部的地图片段

请将代码放在此处,否则无法解决。我已编辑了我的代码。请将代码放在此处,否则无法解决问题。我已编辑了我的代码。