我正在实施一种方法,用户可以从应用设置中禁用屏幕旋转。如果选中此框,则可以自动旋转任何Activity
并按照电话旋转设置进行操作。如果未选中,则禁用自动旋转。
我知道如何按照Activity
这样做
if(!GlobalVar.sharedPreferences_static.isAutoRotate()){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}else{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
}
我是否有办法为所有活动(整个应用程序)执行此操作,而不是为每个Activity
执行此操作?谢谢。
答案 0 :(得分:2)
如果我正确理解了您的问题,您可以执行以下操作:创建一个空的Activity
(不设置其内容),如下所示:
public class EmptyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Your screen orientation logic here
}
}
然后您将所有其他Activities
扩展为EmptyActivity
。因此,您只需要实现一次屏幕方向逻辑。
答案 1 :(得分:1)
同样的事情可以在清单中完成:
android:screenOrientation="landscape"
但如果(仅)应用于应用程序标记,则该属性不起作用。你仍然必须把它放在每个活动上,但至少它在语法上更容易。
答案 2 :(得分:0)
您只需将此行添加到您的活动中,就像这样
<activity
android:name="Package name"
android:label="App anem"
android:screenOrientation="landscape" //Orientation
>
</activity>
或者您可以在活动开始时以类似方式设置此类...
if (Config.sDeviceType.equalsIgnoreCase("MO")) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}