如何仅将应用程序片段设置为纵向模式?
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>
【讨论】:
以上是关于如何仅将应用程序片段设置为纵向模式?的主要内容,如果未能解决你的问题,请参考以下文章
在 Metal 中,将顶点和片段缓冲区设置为相同的 MTLBuffer 是不是仅将其复制到 GPU 一次?