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