gpt4 book ai didi

java - Android从fragment设置全屏

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:52:57 35 4
gpt4 key购买 nike

这是我的问题:我有一个 Android 应用程序,它允许用户全屏显示以获得更好的可读性。全屏 fab 切换按钮放置在实际包含读数的 fragment 内。

让它变得简单:

  • 主要 Activity 包含阅读 fragment
  • Readings Fragment 包含一个用于切换全屏的精美按钮

为了触发全屏,我使用了这个 fragment :

this.fullScreenFab.setOnClickListener(v -> {
WindowManager.LayoutParams attrs = getActivity().getWindow().getAttributes();
if (this.isFullScreen) {
this.isFullScreen = false;
((AppCompatActivity)
getActivity()).getSupportActionBar().show();
getActivity().getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

} else {
this.isFullScreen = true;
((AppCompatActivity) getActivity()).getSupportActionBar().hide();
getActivity().getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

}
getActivity().getWindow().setAttributes(attrs);
});

现在,它运行良好,只是状态栏和操作栏空间不断显示。 Activity 进入 FS(甚至 Android 警告我这一点)但是这两个元素占用的空间仍然存在。

全屏禁用:

enter image description here

启用全屏:

enter image description here

如您所见,FS 的顶部和底部都被占用,因此该 fragment 不会实现真正的全屏。

fragment 有

android:fitsSystemWindows="true"

请发送帮助!提前致谢。瓦莱里奥

最佳答案

您应该尝试使用此标志,因为它旨在删除状态栏和导航。

getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

注意:您需要在切换或关闭 fragment 时手动清除它。否则,此全屏将适用,直到父 Activity 存在为止。为此,

getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

此外,您还可以使用 FLAG_FULLSCREEN。使用它会有效地设置一个透明的通知栏,但状态栏上的图标仍然会显示。

关于java - Android从fragment设置全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49446881/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com