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)
因此,在您的清单中,将此标签添加到您的 <application>
<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+ 全屏模式的主要内容,如果未能解决你的问题,请参考以下文章