这是我的代码:
public MyPresentation(Context outerContext, Display display) {
super(outerContext, display);
WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
View rootView = getWindow().getDecorView().getRootView();
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.x=300;
lp.y=300;
lp.width=lp.height=500;
wm.updateViewLayout(rootView, lp);
}
如您所见,我正在尝试通过窗口管理器更改演示文稿的参数。
Java.lang.IllegalArgumentException:View=com.android.internal.policy.impl.PhoneWindow$DecorView{164f32fc V.E..... R.....ID 0,0-0,0} not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:466)
at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:322)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:91)
at com.evideostb.cbb.diveintotv.MyPresentation$override.init$body(MyPresentation.java:30)
at com.evideostb.cbb.diveintotv.MyPresentation$override.access$dispatch(MyPresentation.java)
at com.evideostb.cbb.diveintotv.MyPresentation.<init>(MyPresentation.java:0)
那么,如何获取附加到窗口管理器的演示文稿的根视图?
最佳答案
作为例外名称说IllegalArgumentException, DecorView not attached to window manager
。
调用getRootView()
时,活动/片段可能在onPause状态之后(没有活动的UI)。
您可以在视图上执行任何操作之前添加以下代码:
活动
if (isFinishing()){
//You code here
}
分段
if (isAdded()){
//You code here
}
还可以查看here,也许您遇到了常见错误。
关于android - 如何获取附加到窗口管理器的演示文稿的根 View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38888557/