全屏时如何禁用导航栏幻灯片动画?
How to disable the navigation bar slide animation when going fullscreen?
我有一个 activity 可以转到另一个全屏 activity。但是,当从这个 activity 过渡到我的全屏 activity 时,导航栏会向下滑动而不是立即消失。我在第二个 activity 中膨胀了一个全屏 window,但由于滑动动画速度较慢,它会在动画完成后 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
我想,我成功了:
FullscreenActivity
class:
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>
注意! 设置 StatusBar
需要颜色 API 21。 对于旧版本,对于"hide" StatusBar,您需要使用:
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
作为上面代码中的 uiOptions。 (虽然它会导致相当快的调整大小)。
希望对你有所帮助
我有一个 activity 可以转到另一个全屏 activity。但是,当从这个 activity 过渡到我的全屏 activity 时,导航栏会向下滑动而不是立即消失。我在第二个 activity 中膨胀了一个全屏 window,但由于滑动动画速度较慢,它会在动画完成后 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
我想,我成功了:
FullscreenActivity
class:
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>
注意! 设置 StatusBar
需要颜色 API 21。 对于旧版本,对于"hide" StatusBar,您需要使用:
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
作为上面代码中的 uiOptions。 (虽然它会导致相当快的调整大小)。
希望对你有所帮助