Galaxy S10、S10+ 全屏模式

Posted

技术标签:

【中文标题】Galaxy S10、S10+ 全屏模式【英文标题】:Galaxy S10, S10+ Full Screen Mode 【发布时间】:2019-08-03 11:36:42 【问题描述】:

如何用三星 Galaxy S10 和 S10+ 实现全屏模式,以下代码对我不起作用:

getWindow().getDecorView().setSystemUiVisibility(
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
// | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);

它隐藏了状态栏的内容,但它不隐藏它自己的状态栏:(

请帮忙

【问题讨论】:

【参考方案1】:

来自 Mohamad Bdour 链接的文档:

请注意,android 可能不允许内容视图与 系统吧。覆盖此行为并强制内容扩展 进入剪切区域,将以下任何标志应用于视图 通过 View.setSystemUiVisibility(int) 方法可见性:

SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION SYSTEM_UI_FLAG_LAYOUT_STABLE

【讨论】:

【参考方案2】:

以您的应用程序的样式为我解决以下问题:

<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>

有关支持抠图的更多详细信息,请参阅:

https://developer.android.com/guide/topics/display-cutout

【讨论】:

请注意,此选项仅适用于 API 级别 27+,因此您需要单独的 Themes.xml(对于 API 级别 27+,您需要 res/values-v27/themes.xml)。一旦您向 xml 添加不受支持的属性,Android Studio 应该会建议您自动执行此重构并为您创建文件。【参考方案3】:

尝试创建一个样式:

<style 
    name="Theme.AppCompat.Light.NoActionBar.FullScreen" 
    parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

然后将主题应用于您的活动:

<activity
   android:name=".MyActivity"
   android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen" 
/>

更新:

据我所知,三星 S10 的宽高比为 19:9(相当于 2.1) 因此,在您的清单中,将此标签添加到您的 &lt;application&gt;

<meta-data android:name="android.max_aspect" android:value="2.1" />

你也可以尝试为Activity或Application设置resizeableActivity:

android:resizeableActivity="true"

【讨论】:

好吧,尝试在模拟器上使用相同的代码,如果它有效,那是 Galaxy s10 特有的东西,因为这款设备将在 6 月 4 日发布,我无能为力。如果您在三星工作,建议您进行内部研究。 其实S10,S10+已经发布了,我也拿到了。正如问题的标题所说,这个问题只发生在 S10、S10+ 上。 我已经编辑了我的答案。您可以尝试其他方法。 纵横比是 19:9 是 2,111111111,也许这个值应该是 android:value="2.2" 而不是。只是猜测 也没有用,我认为这种行为是三星有意的。

以上是关于Galaxy S10、S10+ 全屏模式的主要内容,如果未能解决你的问题,请参考以下文章

在三星 Galaxy S 上以人像模式“拍照并呈现”

三星S10系列相关参数对比,S10e/S10/S10+/S10 5G

vivo S10如何设置桌面过渡动画?

如何在android 10中检测全屏手势模式

检测全屏模式

媒体查询以区分横向模式下的 Galaxy 和桌面查看?