因为我的应用程序只支持移动设备的纵向模式。当我选择device Auto-rotate on。但是当我在Google Pixel Android 10上安装这个应用程序时,它会在横向模式下旋转。正如我在清单android:configChanges="screenLayout|keyboardHidden|screenSize|orientation".中提到的,但WebView仍然以横向模式旋转。如何处理这种情况。此外,当设备在横向模式下旋转时,onConfigurationChanged()方法将从函数返回。尽管如此,它仍然在横向模式下旋转。
请给我提建议。
谢谢
android:configChanges="screenLayout|keyboardHidden|screenSize|orientation"
fun onConfigurationChanged(){
if(Mobile){
return
}预期视图不应在横向模式下旋转,因为它仅支持移动设备的纵向模式。
发布于 2019-11-05 13:58:52
在manifest.xml文件中,将以下行添加到每个声明的活动中:-
android:screenOrientation="portrait"它将确保您的应用程序将仅处于纵向模式。
发布于 2019-11-05 14:05:48
android:configChanges="screenLayout|keyboardHidden|screenSize|orientation"以上行的
不会阻止它进入landscap模式。它将阻止视图重新生成,这样就不需要保存视图的状态。
要在纵向模式下限制应用程序,您应该在activity标签中添加以下行。
android:screenOrientation="portrait"此外,当配置发生更改时,将调用onConfigurationChanged方法。意味着在改变方向后,它会被调用,所以你不能在它里面写一些东西来阻止活动进入landscap模式。
,或者你可以试试这个
if(CommonUtils.dpFromPx(this, resources.displayMetrics.widthPixels.toFloat())>=600){
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
}
else{
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR
}和方法dpFromPx是:
public static float dpFromPx(final Context context, final float px) {
return px / context.getResources().getDisplayMetrics().density;
}https://stackoverflow.com/questions/58705287
复制相似问题