gpt4 book ai didi

android - 如何获取附加到窗口管理器的演示文稿的 Root View ?

转载 作者:行者123 更新时间:2023-11-29 01:17:04 28 4
gpt4 key购买 nike

这是我的代码:

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)

那么我怎样才能获得附加到窗口管理器的演示文稿的 Root View 呢?

最佳答案

如异常名称所述IllegalArgumentException, DecorView not attached to window manager
可能 Activity/Fragment 是在 onPause 之后调用 getRootView() 时的状态(无 Activity UI)。

您可以在对 View 执行任何操作之前添加此代码:
Activity

if (isFinishing()){
//You code here
}

fragment

if (isAdded()){
//You code here
}

另请参阅 here也许你遇到了常见的错误。

关于android - 如何获取附加到窗口管理器的演示文稿的 Root View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38888557/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com