【发布时间】:2013-11-18 17:30:25
【问题描述】:
我想以编程方式更改我的应用程序中的旋转模式。我发现的所有讨论都是关于在特定活动中禁用轮换。我想将整个手机锁定为纵向模式。我该如何做到这一点?
编辑。澄清一下,我想锁定整个手机,包括所有其他应用程序、设置等。不仅仅是我自己的应用程序。
【问题讨论】:
标签: java android rotation screen-orientation
我想以编程方式更改我的应用程序中的旋转模式。我发现的所有讨论都是关于在特定活动中禁用轮换。我想将整个手机锁定为纵向模式。我该如何做到这一点?
编辑。澄清一下,我想锁定整个手机,包括所有其他应用程序、设置等。不仅仅是我自己的应用程序。
【问题讨论】:
标签: java android rotation screen-orientation
将以下内容添加到您的活动 onCreate:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
【讨论】:
最简单、最快且保证工作的方法是定义一个父 Activity 类:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
然后让你的所有活动都继承父活动:
活动一:
public class MainActivity extends MyActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
活动二:
public class LoginActivity extends MyActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
}
}
这样,你只需要定义一次。
【讨论】:
在您的 AndroidManifest.xml 集中...
android:screenOrientation="portrait"
...作为 Activity/Activity 的属性。
【讨论】:
这篇文章应该足以回答你的问题:)
stackoverflow.com/questions/582185/
如果您正在使用片段,您只需定义一次,否则您需要在每个活动标签中定义它...
【讨论】: