Android应用在横向模式下留下间距
Posted
技术标签:
【中文标题】Android应用在横向模式下留下间距【英文标题】:Android app left spacing when landscape mode 【发布时间】:2022-01-23 21:36:20 【问题描述】:您好,我目前正在创建一个应用程序,我在其中强制一项活动处于横向模式。
它可以工作,但我一直保持左侧间距,好像屏幕左侧仍有一个操作栏/状态栏。
这是我的主题:
<style name="Theme.MyApp" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<!--<item name="android:windowFullscreen">true</item>-->
<item name="android:windowTranslucentStatus">true</item>
</style>
在清单文件中包含此代码的活动之外的所有活动中都可以正常工作:
<activity
android:name=".MyActivity"
android:exported="false"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="sensorLandscape"
android:theme="@style/Theme.MyApp"/>
任何帮助都会很棒。
谢谢!
【问题讨论】:
【参考方案1】:在网上搜索了一段时间后,我找到了这个页面:
https://developer.android.com/guide/topics/display-cutout
事实证明,在 Android 9(API 级别 28)及更高版本中存在显示切口。默认情况下,当以纵向模式显示时,内容会被渲染到剪切区域,只有在横向模式下,它的内容才会被显示(不将内容呈现到剪切区域)。
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT - 使用此默认设置, 以纵向模式显示时,内容呈现到剪切区域, 但是在横向模式下显示时,内容会被加黑。
所以为了解决我的问题,我需要做的就是将剪切模式设置为shortEdges
。
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES - 内容呈现到 纵向和横向模式下的剪切区域。
通过将以下行添加到我的主题样式中。
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
【讨论】:
以上是关于Android应用在横向模式下留下间距的主要内容,如果未能解决你的问题,请参考以下文章
Android 23 及更小版本在横向模式下不会填满所有屏幕
Android TimePicker 在横向模式下无法很好地显示