You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java/Kotlin设置Android TV竖屏模式?代码无效求适配方案

解决竖屏设置不生效及全屏适配问题

1. 排查Manifest配置冲突

先检查AndroidManifest.xml中对应Activity的屏幕方向配置,避免和代码设置冲突。直接在Manifest里锁定竖屏并添加配置变更监听:

<activity
    android:name=".你的目标Activity"
    android:screenOrientation="portrait"
    android:configChanges="orientation|screenSize|smallestScreenSize">
</activity>

添加configChanges可避免屏幕旋转时重启Activity,让竖屏设置更稳定。

2. 调整代码调用时机

将setRequestedOrientation放在onCreate方法的setContentView之前执行,确保布局加载前就锁定方向:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    setContentView(R.layout.activity_main);
    // 其他初始化逻辑
}

3. 实现竖屏全屏适配

要让竖屏内容像横屏一样铺满整个屏幕,可通过两种方式实现:

  • 代码设置全屏:
// 隐藏状态栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
// Android 11+ 隐藏导航栏并保持沉浸式
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
  • 主题设置全屏:
    在styles.xml中定义全屏主题:
<style name="FullScreenPortraitTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

然后在Manifest的目标Activity中应用该主题。

4. 检查模拟器设置

部分模拟器可能强制固定横屏,进入模拟器的「显示」设置,确认屏幕方向为「跟随系统」,而非手动锁定横屏。

5. Android 8.0+ 特殊处理

如果是Android 8.0(API 26)及以上版本,关闭分屏模式后再测试,分屏状态可能会干扰屏幕方向锁定逻辑。

内容的提问来源于stack exchange,提问作者Syed Hasan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:54:57