如何在不旋转/重建Activity的情况下检测屏幕旋转?
需求与问题
我希望能够检测手机处于横屏还是竖屏模式,但不希望我的Activity及所有按钮随之旋转。
已尝试的方案及问题
- 以下代码可以检测旋转,但同时也会使屏幕旋转:
Display display = getWindowManager().getDefaultDisplay(); int rotation = display.getRotation(); rotVal.setText("Rotation: " + rotation);
- 我尝试在MainActivity中通过以下代码将Activity锁定为竖屏模式,但此时
rotation值不再变化:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
我还尝试在清单文件中设置
android:screenOrientation="portrait",但rotVal始终为0。曾参考过两个相关方案,但都不符合需求:
- 某方案包含旋转动画,这并非我想要的——我希望即使手机处于横屏模式,屏幕也保持原样,不旋转、无动画等。
- 另一方案无效,旋转手机时
rotVal仍为0。
疑问
是否存在一种无需旋转/重建布局即可检测方向的方法?
内容的提问来源于stack exchange,提问作者motty_here
相关产品推荐
相关产品推荐

