android studio开发:设置屏幕朝向为竖屏,强制应用的包体始终以竖屏(纵向)展示

在 Android 中,要强制应用的包体始终以竖屏(纵向)展示,可以通过以下几种方式来实现:

✅ 方式一:

AndroidManifest.xml 中设置 Activity 的方向,这是最常用的方法。对所有需要强制竖屏的 Activity 添加如下属性:

xml 复制代码
<activity
    android:name=".YourActivity"
    android:screenOrientation="portrait" />

如果你想整个 app 都是竖屏,就给所有 Activity 都加上 android:screenOrientation="portrait"

✅ 方式二:

在代码中强制设置(不推荐用于所有情况), 可以在 Activity 的 onCreate() 中设置:

java 复制代码
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

不过这种方法 仅在运行时设置方向,可能会被系统配置改变(比如方向感应)影响,不如清单文件里设置稳定。

✅ 方式三:

限制方向感应(可选), 有时你还需要在 res/values/ 的 AndroidManifest.xml之外,进一步防止横屏感应,可以在onConfigurationChanged()中屏蔽方向切换:

java 复制代码
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // 强制重新设置为竖屏
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}

注意要在 AndroidManifest.xml 中声明处理方向变化:

xml 复制代码
android:configChanges="orientation|screenSize"

✅ 方式四:

防止游戏或 WebView 横屏(特例)
如果是游戏/Unity/Flutter 等框架项目,要在框架设置中锁定竖屏方向。 WebView 应用 也一样,Activity 设为竖屏就行了。

批量修改多Activity为竖屏

如果你想批量将多个 Activity 设置为竖屏显示,最直接且可靠的方式是批量修改 AndroidManifest.xml 文件中的每个activity标签,加上:

xml 复制代码
android:screenOrientation="portrait"

✅ 方法一:手动编辑(适用于少量 Activity)

手动为每个 activity 加上 android:screenOrientation="portrait",例如:

xml 复制代码
<activity android:name=".MainActivity"
          android:screenOrientation="portrait" />
<activity android:name=".SettingsActivity"
          android:screenOrientation="portrait" />

✅ 方法二:用正则或脚本自动添加(适用于大量 Activity)

如果你有很多activity 标签,可以使用 Python 脚本、正则表达式、IDE 批处理 来添加这个属性。

🔧 示例 Python 脚本(自动添加竖屏设置)

python 复制代码
import re

with open('AndroidManifest.xml', 'r', encoding='utf-8') as f:
    content = f.read()

# 匹配所有 activity 标签并添加 screenOrientation(如果没有的话)
def add_portrait_orientation(match):
    tag = match.group(0)
    if 'android:screenOrientation' not in tag:
        tag = tag.replace('<activity', '<activity android:screenOrientation="portrait"', 1)
    return tag

new_content = re.sub(r'<activity\s+[^>]+>', add_portrait_orientation, content)

with open('AndroidManifest.xml', 'w', encoding='utf-8') as f:
    f.write(new_content)

print("所有 Activity 已设置为竖屏。")

✅ 方法三:Android Studio 批量修改(带预览)

打开 AndroidManifest.xml。

使用快捷键 Ctrl + R (Windows) 或 Cmd + R (macOS)。

搜索正则:<activity(?![^>]*screenOrientation)[^>]*>

替换为:<activity android:screenOrientation="portrait" + 原内容(你可以先测试一下)。

⚠️ 注意:确保不会重复添加已有的 screenOrientation。

相关推荐
whysqwhw1 小时前
Android Jetpack 中 ViewModel 的全面解析
android
2501_916007474 小时前
iPhone查看App日志和系统崩溃日志的完整实用指南
android·ios·小程序·https·uni-app·iphone·webview
稻草人不怕疼4 小时前
Android 渲染机制小结
android
JokerX4 小时前
基于 Kotlin + Jetpack Compose 的完整电商开源项目分享
android
佳哥的技术分享4 小时前
android APT技术
android
2501_915918417 小时前
iOS 抓不到包怎么办?全流程排查思路与替代引导
android·ios·小程序·https·uni-app·iphone·webview
小毛驴8507 小时前
IntelliJ IDEA 的常用快捷键
java·ide·intellij-idea
_祝你今天愉快8 小时前
Java-JVM探析
android·java·jvm
飞天卡兹克8 小时前
forceStop流程会把对应进程的pendingIntent给cancel掉
android
月光有害12 小时前
PL-0功能拓展及基于VSCode的IDE配置
ide·vscode·编辑器