在我的项目中,我必须锁定活动的方向。(我无法重新创建该活动。)
当用户改变设备的方向时,我想显示一条消息,内容为:“视图已锁定在此位置...”
我可以轻松使用以下代码锁定方向:
如果有人知道如何锁定视图并检测设备方向的更改,这将对我非常有帮助。谢谢大家。
当用户改变设备的方向时,我想显示一条消息,内容为:“视图已锁定在此位置...”
我可以轻松使用以下代码锁定方向:
if(version >= Build.VERSION_CODES.JELLY_BEAN_MR2){
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}else{
int orientation = activity.getResources().getConfiguration().orientation;
if(orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}else{
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
使用此代码可以锁定视图,但我无法检测到用户何时更改设备方向。
如果我使用以下代码:
@Override
public void onConfigurationChanged(Configuration newConfig) {
//Check if the orientation has change
if(newConfig.orientation != mOrientation){
Toast.makeText(this, "Message for user", Toast.LENGTH_SHORT).show();
}
//Try to lock the view but not working
newConfig.orientation = mOrientation;
//Obligatory line that reload the view and cannot be delete
//(is the biggest prolem of this code)
super.onConfigurationChanged(newConfig);
}
如果有人知道如何锁定视图并检测设备方向的更改,这将对我非常有帮助。谢谢大家。