我正在开发一个锁屏应用程序,我在服务中使用 WindowManager 添加一个 View 。 我已经在 list 文件中为所有 Activity 设置了 Orientation PORTRAIT,但这似乎不适用于这个动态添加的 View 。
请看下面的代码 fragment
public class LockerService extends Service{
@Override
public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
lockScreenView = new LockScreenView(this, this);
windowManager.addView(lockScreenView, params);
}
}
锁屏 View 如下:
public class LockScreenView extends RelativeLayout{
public LockScreenView(Context context, ScreenUnlockedDeligate screenUnlockedDeligate) {
super(context);
setSystemUiVisibility(SYSTEM_UI_FLAG_IMMERSIVE_STICKY | SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION);
inflate(getContext(), R.layout.view_lock, this);
}
}
有什么方法可以禁用此 View 的方向更改吗?即 Orientation.PORTRAIT
编辑:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
在这种情况下似乎不可用
提前致谢!
干杯
最佳答案
经过一番搜索,我找到了解决方案。
添加
params.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
在添加 View 之前将解决问题并根据需要锁定方向。
喜欢:
public class LockerService extends Service{
@Override
public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
lockScreenView = new LockScreenView(this, this);
params.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
windowManager.addView(lockScreenView, params);
}
}
关于android - 禁用方向更改 - WindowManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38656760/