2016-05-26 94 views
0

我製作了一個應用程序,並在應用程序的開始部分包含了視圖尋呼機圈指示器作爲啓動教程。第一個片段屏幕顯示應用程序的名稱,第二個片段屏幕顯示使用應用程序的基本步驟,而第三個屏幕顯示您已準備好使用應用程序,然後啓動應用程序。現在問題是我想禁用第一個片段屏幕,當用戶在第二個片段屏幕,以便SPLASH屏幕片段屏幕不會再次顯示在頁面交換。當用戶轉到第二個片段時,第一個屏幕被禁用/鎖定/隱藏任何不允許用戶移動到第一個屏幕的內容。用戶處於第二片段時禁用第一個片段

這裏是我的onPageChangeListener

private void setTab(){ 
     _mViewPager.addOnPageChangeListener(new OnPageChangeListener(){ 

        @Override 
        public void onPageScrollStateChanged(int position) {} 
        @Override 
        public void onPageScrolled(int arg0, float arg1, int arg2) {} 
        @Override 
        public void onPageSelected(int position) { 
         // TODO Auto-generated method stub 
         btnAction(position); 
         if (position == 1) 
         { 

         } 

        } 

       }); 

代碼現在我想在適當的位置是這樣的:

if (position == 1) 
{ 
getSupportFragmentManager().beginTransaction().remove(LayoutOne.newInstance(getApplicationContext())).commit(); 
} 

但它亙古不變的工作。請幫忙做些什麼來隱藏/關閉/鎖定第一片段屏幕

回答

0
 private Fragment fr; 
     private FragmentTransaction ft; 
     fr = new NextFragment(); 
     ft = getFragmentManager().beginTransaction(); 
     ft.replace(R.id.your_replace_container, fr).addToBackStack(null).commit(); 

可以啓動/由舊的片段取代它打電話給你的新片段就像:

 ft.replace()... 

,你可以將舊的一個添加到堆棧中,以便在返回鍵上從屏幕移動的位置獲得屏幕上的舊片段!

 ft.replace()...addToBackStack()... //on back key 

嘗試編輯或做類似上述的事情。

+0

不,它不起作用 –

+0

所以實際上想要實現什麼? –

+0

如果你正在使用線程或計時器的啓動畫面雙重檢查停止線程然後移動到下一個片段否則發佈一些代碼在這裏 –

0

您應該使用FragmentPagerAdapter爲handlig片段的導航,並設置適配器viewpager

0

使用下面的代碼。這對你有幫助。

FragmentTransactionfragmenttransaction = getSupportFragmentManager().beginTransaction(); 
FirstFragment regcomplainfragment = new FirstFragment(); 
fragmenttransaction.replace(R.id.content_frame, regcomplainfragment).addToBackStack("tag"); 
fragmenttransaction.commit(); 
相關問題