2015-07-10 58 views
0

我正在制作一个应用程序来遵循单个活动规则 - 整个APP生命周期中只有一个活动,屏幕只是片段。一个片段关心屏幕方向变化

除了一个/两个片段,整个应用程序只支持横向屏幕方向。 AndroidManifest.xml如下:

<activity 
     android:name=".ui.activity.MainActivity" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/app_name"> 

问:如何锁定我的所有碎片? 我尝试通过重写活动中的onConfigurationChanged,但它永远不会被调用。

+0

'机器人:screenOrientation =“portrait' ”锁定“ 屏幕方向为纵向...现在为什么/当onConfigurationChanged应该被调用? – Selvin

+0

那么,这是问题的一部分,是否有一种方法可以锁定除一个或两个以外的所有片段? – Qylin

+0

如果我理解正确,为什么android:screenOrientation设置为纵向我认为这是你想要的,从你的陈述“...整个应用程序只支持风景画面” –

回答

0

如果我理解你是正确的(因为它不清楚),你想锁定活动和所有的片段。 从技术上讲,你已经为整个和唯一的Activity设置了配置,这会影响你的碎片。如果不是这样,那么我怀疑这些碎片会禁用它的设置。我唯一的建议是在onCreateView(添加代码)并调用setRequestedOrientation()

代码建议在片段:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
MainActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED); 
... 
}