我有一个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在FragmentActivity上,我正在为其设置screenOrientation。
答案 0 :(得分:14)
试试这个..
您可以尝试以编程方式。
在java中rootView
之后添加此行getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
对于 Ex :
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" >
答案 1 :(得分:0)
Orientation属性是每个活动,因此您可以仅为包含该片段的活动声明方向,使其处于横向状态,其余活动将保持原样。
getActivity()。setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
或者你可以在清单中声明
<activity android:name=".Control" android:screenOrientation="portrait"></activity>