【发布时间】:2018-06-26 07:45:45
【问题描述】:
我正试图强制我的布局为平板电脑的横向,所以我有这个代码:
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
但如果我在此调用后立即调用 getResources().getDisplayMetrics().widthPixels,它会返回平板电脑的高度而不是宽度。只有在调用 onConfigurationChanged 之后,我才开始获得正确的高度,这发生在我的主布局使用不正确的屏幕尺寸膨胀之后。
我在 setRequestedOrientation 之后尝试这样做:
DisplayMetrics dm = getResources().getDisplayMetrics();
int height = dm.heightPixels;
int width = dm.widthPixels;
dm.heightPixels = width;
dm.widthPixels = height;
getResources().updateConfiguration(getResources().getConfiguration(), dm);
但这并没有帮助。
处理这种情况的正确方法是什么?
P。 S. 即使我将方向设置为 SCREEN_ORIENTATION_LANDSCAPE,但在发生更改后我仍然会收到 SCREEN_ORIENTATION_USER。这是为什么呢?
【问题讨论】:
-
你要实际屏幕尺寸还是UI屏幕尺寸?
-
我认为显示指标返回 UI 屏幕大小,没有导航栏和返回按钮,所以这是我更喜欢的