android studio上的Viewpager和片段

android studio上的Viewpager和片段,android,Android,android开发者请帮助,我有带片段的viewpager,当我滑入页面并到达最后一页,然后当我再次返回第一页时,第一页的片段将加载其默认显示。请帮助..这是我在MainActivity中的代码 public class MainActivity extends AppCompatActivity { private ActionBarDrawerToggle actionBarDrawerToggle; private DrawerLayout drawerLayout;

android开发者请帮助,我有带片段的viewpager,当我滑入页面并到达最后一页,然后当我再次返回第一页时,第一页的片段将加载其默认显示。请帮助..这是我在MainActivity中的代码

public class MainActivity extends AppCompatActivity {

    private ActionBarDrawerToggle actionBarDrawerToggle;
    private DrawerLayout drawerLayout;
    private ListView navList;
    private FragmentManager fragmentManager;
    private FragmentTransaction fragmentTransaction;
    private ActionBar actionBar;
    private ViewPager pager;
    private Menu menu;
    private float lastTranslate = 0.0f;
    private FrameLayout mainframe, galleryframe;
    private Frag_Gallery fragGallery;
    private Frag_Create fragCreate;
    private Frag_Account fragAccount;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        pager = (ViewPager) findViewById(R.id.viewPager);
        mainframe = (FrameLayout) findViewById(R.id.fragmentholder);
        galleryframe = (FrameLayout) findViewById(R.id.galleryholder);
        pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
        ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#0b115e"));
        Main_Menu Menu_data[] = new Main_Menu[]
                {
                        new Main_Menu(R.mipmap.gallery_icon, "Gallery"),
                        new Main_Menu(R.mipmap.create_icon, "Create Your Own"),
                        new Main_Menu(R.mipmap.account_icon, "My Account"),
                        new Main_Menu(R.mipmap.contact_icon, "Contact Us")
                };
        MainMenuAdapter adapter = new MainMenuAdapter(this,
                R.layout.listviewmain_item_row, Menu_data);

        drawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout);
        navList = (ListView) findViewById(R.id.navList);

        View header = (View) getLayoutInflater().inflate(R.layout.listviewmain_header_row, null);

        navList.addHeaderView(header);

        navList.setAdapter(adapter);
        navList.setDivider(null);
        navList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        navList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                loadSelection(position);
                drawerLayout.closeDrawer(navList);
            }
        });

        actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.opendrawer, R.string.closedrawer);
        drawerLayout.setDrawerListener(actionBarDrawerToggle);

        actionBar = getSupportActionBar();
        actionBar.setDisplayShowHomeEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setBackgroundDrawable(colorDrawable);

        actionBar.setTitle("");

        fragmentManager = getSupportFragmentManager();
        loadSelection(0);
        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int pos) {
                switch (pos) {
                    case 0:
                        menu.getItem(0).setIcon(R.mipmap.gallery_icon);
                        menu.getItem(1).setIcon(R.mipmap.create_icon_off);
                        menu.getItem(2).setIcon(R.mipmap.account_icon_off);
                        break;
                    case 1:
                        menu.getItem(0).setIcon(R.mipmap.gallery_icon_off);
                        menu.getItem(1).setIcon(R.mipmap.create_icon);
                        menu.getItem(2).setIcon(R.mipmap.account_icon_off);
                        break;
                    case 2:
                        menu.getItem(0).setIcon(R.mipmap.gallery_icon_off);
                        menu.getItem(1).setIcon(R.mipmap.create_icon_off);
                        menu.getItem(2).setIcon(R.mipmap.account_icon);
                        break;

                }

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        this.menu = menu;
        getMenuInflater().inflate(R.menu.menu_main, menu);
        menu.getItem(0).setIcon(R.mipmap.gallery_icon);
        menu.getItem(1).setIcon(R.mipmap.create_icon_off);
        menu.getItem(2).setIcon(R.mipmap.account_icon_off);
        return true;
    }

    private void loadSelection(int i) {

        switch (i) {
            case 1:
                actionBar.setTitle("Gallery");
                pager.setCurrentItem(0, true);
                break;
            case 2:
                actionBar.setTitle("Design");
                pager.setCurrentItem(1, true);
                break;
            case 3:
                actionBar.setTitle("Account");
                pager.setCurrentItem(2, true);
                break;
            case 4:
                actionBar.setTitle("Contact us");
                break;
            default:
                actionBar.setTitle("");
                break;
        }
    }

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        actionBarDrawerToggle.syncState();
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == android.R.id.home) {
            if (drawerLayout.isDrawerOpen(navList)) {
                drawerLayout.closeDrawer(navList);
            } else {
                drawerLayout.openDrawer(navList);
            }
        }

        return super.onOptionsItemSelected(item);
    }

    private class MyPagerAdapter extends FragmentPagerAdapter {

        private Fragment fragment;

        public MyPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int pos) {

            fragment = new Fragment();
            switch (pos) {
                case 0:
                    fragment = new Frag_Gallery();
                    break;
                case 1:
                    fragment = new Frag_Create();
                    break;
                case 2:
                    fragment = new Frag_Account();
                default:
                    break;
            }
            return fragment;
        }


        @Override
        public int getCount() {
            return 3;
        }
    }

}
public类MainActivity扩展了AppCompatActivity{
私人动作bardrawertoggle动作bardrawertoggle;
私人抽屉布局;
私有列表视图导航列表;
私人碎片管理器碎片管理器;
私人碎片交易;
私人ActionBar ActionBar;
私人寻呼机;
私人菜单;
私有浮动LASTTRANSTAL=0.0f;
专用框架布局主机、厨房框架;
私人弗拉古画廊;
私有Frag_创建fragCreate;
私人Frag_账户FragaAccount;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pager=(ViewPager)findViewById(R.id.ViewPager);
mainframe=(FrameLayout)findViewById(R.id.fragmentholder);
galleryframe=(框架布局)findViewById(R.id.galleryholder);
setAdapter(新的MyPagerAdapter(getSupportFragmentManager());
ColorDrawable ColorDrawable=新的ColorDrawable(Color.parseColor(#0b115e));
主菜单数据[]=新主菜单[]
{
新的主菜单(R.mipmap.gallery图标,“gallery”),
新建主菜单(R.mipmap.create_图标,“创建您自己的”),
新建主菜单(R.mipmap.account图标,“我的帐户”),
新建主菜单(R.mipmap.contact_图标,“联系我们”)
};
MainMenuAdapter=新的MainMenuAdapter(此,
R.layout.listviewmain(项目行、菜单数据);
抽屉布局=(抽屉布局)findViewById(R.id.抽屉布局);
navList=(ListView)findViewById(R.id.navList);
视图标题=(视图)GetLayoutFlater()。充气(R.layout.listviewmain\u标题\u行,空);
navList.addHeaderView(标题);
设置适配器(适配器);
navList.setDivider(空);
navList.setChoiceMode(ListView.CHOICE\u MODE\u SINGLE);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
载荷选择(位置);
抽屉布局。关闭抽屉(导航列表);
}
});
actionBarDrawerToggle=新actionBarDrawerToggle(this,drawerLayout,R.string.opendrawer,R.string.closedrawer);
抽屉布局。setDrawerListener(actionBarDrawerToggle);
actionBar=getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(真);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setBackgroundDrawable(可着色);
actionBar.setTitle(“”);
fragmentManager=getSupportFragmentManager();
负荷选择(0);
pager.addOnPageChangeListener(新的ViewPager.OnPageChangeListener(){
@凌驾
已滚动页面上的公共无效(int-position、float-positionOffset、int-positionOffsetPixels){
}
@凌驾
已选择页面上的公共无效(int pos){
开关(pos){
案例0:
menu.getItem(0).setIcon(R.mipmap.gallery_图标);
menu.getItem(1).setIcon(R.mipmap.create_icon_off);
menu.getItem(2).setIcon(R.mipmap.account\u icon\u off);
打破
案例1:
menu.getItem(0).setIcon(R.mipmap.gallery\u icon\u off);
menu.getItem(1).setIcon(R.mipmap.create_图标);
menu.getItem(2).setIcon(R.mipmap.account\u icon\u off);
打破
案例2:
menu.getItem(0).setIcon(R.mipmap.gallery\u icon\u off);
menu.getItem(1).setIcon(R.mipmap.create_icon_off);
menu.getItem(2).setIcon(R.mipmap.account_图标);
打破
}
}
@凌驾
公共无效onPageScrollStateChanged(int状态){
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
this.menu=菜单;
getMenuInflater().充气(右菜单菜单菜单主菜单);
menu.getItem(0).setIcon(R.mipmap.gallery_图标);
menu.getItem(1).setIcon(R.mipmap.create_icon_off);
menu.getItem(2).setIcon(R.mipmap.account\u icon\u off);
返回true;
}
专用void加载选择(int i){
开关(一){
案例1:
actionBar.setTitle(“画廊”);
pager.setCurrentItem(0,真);
打破
案例2:
actionBar.setTitle(“设计”);
pager.setCurrentItem(1,真);
打破
案例3:
actionBar.setTitle(“账户”);
pager.setCurrentItem(2,真);
打破
案例4:
actionBar.setTitle(“联系我们”);
打破
违约:
actionBar.setTitle(“”);
打破
}
}
@凌驾
后期创建时受保护的空(捆绑包savedInstanceState){
super.onPostCreate(savedInstanceState);
actionBarDrawerToggle.syncState();
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=it
pager.setOffscreenPageLimit(X);