是否有一种编程方式可以在某些操作期间程序化地锁定应用程序为纵向模式,然后在操作完成后恢复(并且如果用户将设备保持在横向方向,则使应用程序旋转为横向模式)?
是否有一种编程方式可以在某些操作期间程序化地锁定应用程序为纵向模式,然后在操作完成后恢复(并且如果用户将设备保持在横向方向,则使应用程序旋转为横向模式)?
试一下这个:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Do your operation
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
我稍微理解了一下你的问题,如果你遇到的问题是重新加载活动导致问题,你可以在清单中添加一行代码来自己处理方向变化。如果你想为方向变化做一些特殊处理,你可能需要这样做,但也许只需添加这些代码就可以解决你的问题:
<activity android:name=".MyActivity"
android:configChanges="keyboard|keyboardHidden|orientation" />
如果您想将屏幕仅设置为纵向,请在Activity的OnCreate方法中使用此代码
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
这一行就足够了
像下面这样
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
SCREEN_ORIENTATION_SENSOR_PORTRAIT
而不是SCREEN_ORIENTATION_SENSOR
。 - Julien KronegggetResources().getConfiguration().orientation
获取方向值,但它对于纵向和反向纵向都返回1....我该如何获取正确的方向?谢谢 - AL̲̳Iorientation = getRequestedOrientation();
这个语句,它会返回正确的屏幕方向数值...这可能会帮助到其他人 :) - AL̲̳IActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
来取消应用程序的方向偏好设置。而ActivityInfo.SCREEN_ORIENTATION_SENSOR
则会覆盖用户配置,以优先选择硬件方向。 - Abandoned Cart