如何一次将屏幕方向应用于纵向所有布局 android studio

Posted

技术标签:

【中文标题】如何一次将屏幕方向应用于纵向所有布局 android studio【英文标题】:How to apply screen orientation to portrait too all the layouts at once android studio 【发布时间】:2021-09-20 21:54:52 【问题描述】:

您好,我正在制作一个我想要的应用程序,所有布局都应该锁定在 potrait inshrot 中,我希望我的应用程序在 potrait 中,即使用户尝试在横向中制作它

我有一些想法,但不知道它是否有效

在我的应用程序中,我只有一个主要活动,其余的都是片段,所以我的想法是,如果我将 reqiredActivity 赋予 potrait 到主要活动,它会起作用

现在我为 potrait 赋予每个片段 requiredAcitivity 但是当我将来有很多片段时,这对我来说可能会很麻烦

 requireActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

【问题讨论】:

【参考方案1】:

您可以在活动清单 XML 中设置它。 screenOrientation.

<activity
            android:name=".Android_mobile_infoActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
  </activity>

【讨论】:

看例子【参考方案2】:

在所有活动的活动清单文件中

android:screenOrientation="portrait"

或创建一个 BaseActivity 并添加

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

然后在所有活动中扩展它。

或者创建一个应用类

class MyApp: Application(), Application.ActivityLifecycleCallbacks 
    override fun onCreate() 
        super.onCreate()

        registerActivityLifecycleCallbacks(this);
    

    override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) 
        activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
    

然后在application标签下添加.MyApp

<application
        android:name=".MyApp"
        .. 
        />

【讨论】:

以上是关于如何一次将屏幕方向应用于纵向所有布局 android studio的主要内容,如果未能解决你的问题,请参考以下文章

iOS 方向在特定屏幕上支持横向和纵向 - 不是所有屏幕

如何使用自动布局为纵向和横向方向配置不同的布局?

iPad:如何根据方向(横向/纵向)显示不同的屏幕

支持iPhone 6和iPhone 6+,具有不同的启动/启动屏幕图像,适用于iPad纵向和横向方向

在 Android 中切换屏幕方向

如何针对不同的 iPhone 屏幕尺寸在纵向和横向中使用自动布局