如何仅将应用程序片段设置为纵向模式?

Posted

技术标签:

【中文标题】如何仅将应用程序片段设置为纵向模式?【英文标题】:How to set application fragments to portrait mode only? 【发布时间】:2014-03-23 21:22:45 【问题描述】:

我有一个 android 应用程序,它有一个主要活动和 3 个作为选项卡的片段。我希望应用程序始终保持纵向模式,但我似乎无法使其正常工作。这是我尝试过的,根据另一个堆栈溢出帖子,但我不确定我做错了什么......如果使用片段是否需要有所不同?

    <activity
        android:name="com.tutorial.test.activities.act1"
        android:label="@string/app_name" 
        android:screenOrientation="portrait"
        android:configChanges="orientation|keyboardHidden" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

谢谢!!

编辑:ViewPager 位于我正在为其设置 screenOrientation 的 FragmentActivity 上。

【问题讨论】:

您不能通过android:screenOrientation="portrait 完成这项工作吗?我认为应该可以... 不,我转动手机时屏幕仍然翻转为横向...可能是因为碎片吗? 【参考方案1】:

试试这个..

您可以尝试以编程方式

在你的java中rootView之后添加这一行getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

对于

View rootView = inflater.inflate(R.layout.activityxml, container, false);       
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

并且在您的清单中将其 android:configChanges="orientation|keyboardHidden" 更改为 android:configChanges="keyboardHidden"

<activity
        android:name="com.tutorial.test.activities.act1"
        android:label="@string/app_name" 
        android:screenOrientation="portrait"
        android:configChanges="keyboardHidden" >

【讨论】:

@user2573690 很高兴它有帮助。编码愉快。 您可以在 onAtach() 中更改方向并在 onDetach() 中更改回原来的方向,因此只有在片段打开时才会更改方向。【参考方案2】:

方向属性是每个活动的,因此您可以仅为包含片段的活动声明方向,使其处于横向状态,其余活动将保持原样。

getActivity().setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

或者你可以在清单中声明

<activity android:name=".Control" android:screenOrientation="portrait"></activity>

【讨论】:

以上是关于如何仅将应用程序片段设置为纵向模式?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Android 默认相机应用设置为仅纵向

如何设置横向模式或纵向模式的应用程序控件?

在 Metal 中,将顶点和片段缓冲区设置为相同的 MTLBuffer 是不是仅将其复制到 GPU 一次?

Delphi,可以仅将表单模式设置为特定的父表单吗?

如何使用swift在iOS中为活动设置两种不同大小的背景图像作为横向和纵向模式

使用导航抽屉旋转时的片段更改