2016-01-24 120 views
16

我有一个活动转到另一个全屏活动。但是,从此活动转换为全屏活动时,导航栏会滑下而不是立即消失。我在第二个活动中夸大了全屏窗口,但由于缓慢的滑动动画,它在动画完成后1秒后调整大小,而不是立即膨胀到全屏。因此,我需要动画立即消失。我试过如何在全屏时禁用导航栏幻灯片动画?

<item name="android:windowAnimationStyle">@null</item>

overridePendingTransition(0, 0); 

Transition fade = new Fade(); 
fade.excludeTarget(android.R.id.navigationBarBackground, true); 
getWindow().setEnterTransition(fade); 

没有运气。

在Windows端,我已经试过

WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS 
WindowManager.LayoutParams.FLAG_FULLSCREEN 
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN 

如何隐藏导航栏:View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

回答

11

我觉得,我把它钉:

enter image description here

FullscreenActivity类:

public class FullscreenActivity extends AppCompatActivity { 

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

     View decorView = getWindow().getDecorView(); 
     int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
       | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; 
     decorView.setSystemUiVisibility(uiOptions); 
     ActionBar actionBar = getSupportActionBar(); 
     if (actionBar != null) { 
      actionBar.hide(); 
     } 

     setContentView(R.layout.activity_fullscreen); 
    } 
} 

清单:

<activity 
     android:name=".FullscreenActivity" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/title_activity_fullscreen" 
     android:theme="@style/FullscreenTheme"/> 

样式:

<style name="FullscreenTheme" parent="AppTheme"> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item> 
    <item name="android:windowActionBarOverlay">true</item> 
    <item name="android:windowBackground">@null</item> 
    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item> 
    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item> 
</style> 

NB!设置StatusBar需要的颜色API 21对于旧版本,“隐藏”状态栏,你需要使用:

 int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_FULLSCREEN; 

在上面的代码uiOptions。 (虽然会导致相当快速的调整大小)。我希望它有帮助