2014-07-20 31 views
1

嗨,我想模仿snapchat。當相機片段都使用沒有標題欄:FragmentPagerAdapter,隱藏並顯示基於片段變化的Window.FEATURE_NO_TITLE

的onCreate

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 
setContentView(R.layout.activity_main) 

但是,當我請向左滑動片段或右片段我想要的標題欄出現。

我該怎麼做?

謝謝你的時間。

澄清:

當尋呼機開關,另一個項目,或者主要的活動開關片段我想要顯示的標題欄。

我目前使用FragmentPagerAdapter來模擬snapchat。從相機片段開始,如果您向左或向右輕掃/放大,會得到另一個片段。片段之間的過渡是輪換式的,不同於將活動與另一個活動進行調用,而活動之間的過渡更多是彈出式過程。

不幸的是,片段之間的切換,不會調用不同的onCreate hookmethod所以我不能隱藏或顯示根據片段中的窗口標題(我可以用活動做到這一點)。所以我想知道如何用碎片來做到這一點。

我正在使用compat v4。

+0

可能是你可以使用行動吧,而不是在這個答案http://stackoverflow.com/questions/8500283/how-to-hide-action-bar-before-activity-is-created-and-then-show-it-again – powerfj

回答

2

我的建議是,你做這樣的事情

請參閱:https://developer.android.com/training/system-ui/status.html http://blog.grio.com/2014/02/androids-hiding-of-the-system-bar-fixed.html

  • 隱藏在Android 4.0下的狀態欄,
  • 隱藏在Android 4.1和狀態欄更高

    ViewPager mViewPager; 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
    
    
        mViewPager.setOnPageChangeListener(new OnPageChangeListener() { 
    
         @Override 
         public void onPageSelected(int position) { 
    
          if(position == 0){ 
           showStatusBar() ; 
          }else { 
           hideStatusBar(); 
          } 
    
         } 
    
         @Override 
         public void onPageScrolled(int arg0, float arg1, int arg2) { 
    
         } 
    
         @Override 
         public void onPageScrollStateChanged(int arg0) { 
    
         } 
        }); 
    

    }

    private void hideStatusBar() { 
        // Hide status bar 
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 
    
    private void showStatusBar() { 
    // Show status bar 
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 
    
1

您可以使用隱藏和顯示方法的actionbar每次向左或向右滑動的時候你FragmentPagerAdapter

樣本:

 getActionBar().hide(); //will hide the actionbar 
     getActionBar().show(); //will show the actionbar