2017-06-23 71 views
0

我有一個名爲「主」與三個片段與選項卡1,選項卡2,選項卡3。當tab1可見並且app進入後臺然後繼續時,tab2會顯示給我而不是tab1。我要如何解決這個issue.I取得了代碼請查如何恢復Android中恢復活動中的現有選項卡?

代碼: -

@Override 
protected void onResume() { 
    super.onResume(); 
    Log.e(TAG, "onResume called::"); 
    if (viewPagerCurrentPosition!=0){ 
     viewPager.setCurrentItem(viewPagerCurrentPosition); 
    } 
    if (cCustomAlertAdDialog.isShowing()) { 
     cCustomAlertAdDialog.dismiss(); 
    } 
    cCustomAlertAdDialog = new CCustomAlertAdDialog(HomeScreenActivity.this); 
    // set tabs and fragments in view pager 
    setTabAndViewPager(); 
    /*Reward code*/ 
    initDrawer(); 
} 
@Override 
public void onTabSelected(TabLayout.Tab tab) { 
    viewPager.setCurrentItem(tab.getPosition()); 
} 

@Override 
public void onTabReselected(TabLayout.Tab tab) { 

} 

@Override 
public void onTabUnselected(TabLayout.Tab tab) { 

} 

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putInt("viewpagerCurrentPosition",viewPager.getCurrentItem()); 
    Log.e(TAG,"Current position of tab::"+viewPager.getCurrentItem()); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    viewPagerCurrentPosition = savedInstanceState.getInt("viewpagerCurrentPosition"); 
    Log.e(TAG,"Saved position of tab::"+viewPagerCurrentPosition); 
} 

onRestart我用下面這行代碼: -

if (viewPagerCurrentPosition!=0){ 
    viewPager.setCurrentItem(viewPagerCurrentPosition); 
} 

上面的代碼是不工作在我的場景中

+0

做的東西在簡歷 –

+0

保存在靜態變量,比標籤的位置使用像viewPager.setCurrentItem變量( 「YOUR_STATIC_VARIABLE」);在你的簡歷方法 –

+0

請編輯我的代碼我是新的 – Niraj

回答

0

它是每次加載的默認選項卡。 試試這個: 在的onCreate和的onResume

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    viewPager.setCurrentItem(1); 

} 

@Override 
protected void onResume() { 
    super.onResume(); 
    viewPager.setCurrentItem(1); 
} 

讓我知道這是否有助於