亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

android - 單activity+多fragment場景,應用長時間在后臺進入前臺時,fragment全部是空白

瀏覽:214日期:2024-08-30 11:50:55

問題描述

1,問題: 應用長期在后臺的場景下,進入前臺時,fragment顯示為空白2,app框架大體實現: 1個activity+多個Fragment,使用的是add()方法以及 hide(),show()方法,顯示fragment3,相關代碼:

onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 判斷 savedInstanceState是否為空: setCanResizeWindow(false); maskView = new View(getApplicationContext()); maskView.setBackground(new ColorDrawable(Color.parseColor('#30000000'))); maskView.setClickable(true); maskView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) { removeMask();} }); setContentView(R.layout.activity_home); EventBus.getDefault().register(this); //3,個推 PushManager.getInstance().initialize(getApplicationContext()); initView(savedInstanceState); getUserData(); getDataFromMsgBrief();} private void initView(Bundle savedInstanceState) {mBottomDial = (LinearLayout) findViewById(R.id.btn_Dial);mBottomComm = (LinearLayout) findViewById(R.id.btn_comm);mBottomContact = (LinearLayout) findViewById(R.id.btn_contact);mBottomLife = (LinearLayout) findViewById(R.id.btn_life);mBottomDialIv = (ImageView) findViewById(R.id.tab_dial_image);mBottomDiaTv = (TextView) findViewById(R.id.tab_dial_text);mSmsIV = (SmsImageView) findViewById(R.id.siv_sms_icon_homeact);//第一次登錄系統時,修改數據庫的Istravelrely字段if (!SpUtils.getSynDB(getApplicationContext())) { ThreadPoolUtil.getmExecutor().execute(new Runnable() {@Overridepublic void run() { CopyLocalContactsUtils.checkIsTravelRely(getApplication()); SpUtils.setSynDB(getApplicationContext());} });}//初始化mBottomDial為選中狀態,fl_content填充DialFragmentmBottomDial.setSelected(true);//if (savedInstanceState != null) {// LogUtils.d('HomeActivity savedInstanceState != null');//// Fragment dialFragment = getSupportFragmentManager().findFragmentByTag(DIAL_TAG);// Fragment contactFragment = getSupportFragmentManager().findFragmentByTag(CONTACT_TAG);// Fragment commFragment = getSupportFragmentManager().findFragmentByTag(COMM_TAG);// Fragment lifeFragment = getSupportFragmentManager().findFragmentByTag(LIFE_TAG);//// getSupportFragmentManager().beginTransaction()//// getSupportFragmentManager().beginTransaction().hide(contactFragment)// .hide(commFragment).hide(lifeFragment).show(dialFragment).commit();////} else { getSupportFragmentManager().beginTransaction(). add(R.id.fl_content, FragmentFactory.createFragment(0), 'DialFragment'). add(R.id.fl_content, FragmentFactory.createFragment(1), 'CommFragment'). add(R.id.fl_content, FragmentFactory.createFragment(2), 'ContactFragment'). add(R.id.fl_content, FragmentFactory.createFragment(3), 'LifeFragment'). hide(FragmentFactory.createFragment(1)). hide(FragmentFactory.createFragment(2)). hide(FragmentFactory.createFragment(3)). show(FragmentFactory.createFragment(0)).commit();//}initClick(); }

嘗試過的解決辦法:1,為了解決多個fragment重疊顯示,在activity的中執行了如下:

@Override protected void onSaveInstanceState(Bundle outState) {//super.onSaveInstanceState(outState); }

問題現象:

android - 單activity+多fragment場景,應用長時間在后臺進入前臺時,fragment全部是空白

問題解答

回答1:

@Override protected void onSaveInstanceState(Bundle outState) {//super.onSaveInstanceState(outState); }

這樣的解決辦法是不對的,這樣會導致從activity被銷毀是不能記住之前的顯示內容,從而使界面空白、為了解決fragment重疊,你可以在注釋掉super.onSaveInstanceState(outState)的同時,加上保存當前fragment的代碼

@Overrideprotected void onSaveInstanceState(Bundle outState) { outState.putString(SPConst.SHOW_TAG, showFragmentTag);}

然后在回來的時候重新獲取之前的fragment,然后再顯示出來

@Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); if (savedInstanceState != null) {showFragmentTag = savedInstanceState.getString(SPConst.SHOW_TAG);if (showFragmentTag != null) { showFragment = fragmentManager.findFragmentByTag(showFragmentTag); switch (showFragmentTag) {case fragmentTag1: workFragment = showFragment; break;case fragmentTag2: patientFragment = showFragment; break;case fragmentTag3: synergyFragment = showFragment; break;case fragmentTag4: toolFragment = showFragment; break;case fragmentTag5: mineFragment = showFragment; break; }} }}回答2:

內容有點亂,對于你這種需求,推薦使用FragmentTabHost,也就沒有這種亂七八糟的問題了。

回答3:

直接用ViewPager就行

主站蜘蛛池模板: 久久亚洲私人国产精品 | 日韩一区视频在线 | 国产盗摄精品一区二区三区 | 丰满寡妇一级毛片 | 一级欧美激情毛片 | 欧美一级片在线视频 | 久久精品亚洲乱码伦伦中文 | 欧美日产国产亚洲综合图区一 | 国产乱子伦真实china | 毛片激情永久免费 | 97视频在线观看免费播放 | 欧美做爱毛片 | 亚洲欧美日韩中文字幕在线一区 | 三级视频网站在线观看 | 日本欧美一区二区三区视频 | 男人天堂avav | 国产三级精品三级国产 | 亚洲a级片| 亚洲人欧洲日韩 | 日韩国产成人资源精品视频 | 国产成人综合手机在线播放 | 亚洲欧美一区二区三区在线观看 | 国产精品每日更新在线观看 | 日本欧美做爰全免费的视频 | 国产高清天干天天视频 | 国产免费黄色网址 | 久久精品国产线看观看亚洲 | 国产小视频在线高清播放 | 亚洲午夜精品一级在线播放放 | 久久成人福利视频 | 手机看片1024国产基地 | 国产午夜精品久久久久免费视 | 免费观看欧美成人禁片 | 9久re在线观看视频精品 | 亚洲午夜精品久久久久久抢 | 亚洲精品国产精品国自产网站 | 在线日韩三级 | 狠狠一区 | 182福利视频 | 亚洲精品久久久久影 | 18视频免费网站 |