- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在 GWT Node 中处理 onAttach 事件?我想我可以这样做:
Node myDiv = DOM.createDiv();
Magic.setOnAttachEventListener(myDiv, new EventListener() {
@Override
public void onEvent(Event event) {
// ...
}
}
当我做这样的事情时应该调用处理程序,
parent.appendChild(myDiv);
假定 parent
已附加自身,即它显示在当前窗口中。
最佳答案
我发布了我的第二个答案,因为现在我知道您无法更改 DIV 添加到父级的方式。
经过一番搜索,我发现 Mutation events 。它们允许您监听 DOMNodeInserted 事件:
JS:
myDiv.addEventListener("DOMNodeInserted", function (ev) {
alert('added');
}, false);
在GWT中你需要使用JSNI方法:
private native void addListener(Element elem) /*-{
elem.addEventListener("DOMNodeInserted", function (ev) {
$wnd.alert('added');
}, false);
}-*/;
它可以工作,但是......它已被弃用。您应该使用 MutationObserver相反。
不幸的是,MutationObserver
没有要观察的 NodeInserted 事件。我认为子树突变观察可以完成这项工作,但它对我不起作用。解决方案是观察父级上的 childList
突变:
JS:
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
alert(mutation.type);
});
});
// configuration of the observer:
var config = {
childList: true
};
// pass in the target node, as well as the observer options
observer.observe(elem, config);
并且,对于 GWT,您需要将其包装在 JSNI 方法中(您知道如何做)。
观察者回调中的mutation
参数是MutationRecord对象。
因此,如果您可以获得父级,请对其使用 MutationObserver 并观察 childList
突变。如果没有,请尝试使用已弃用的 Mutation 事件。
我知道这不是纯粹的 GWT 解决方案,但您可以使用 GWT 方法来处理事件或突变。您只需从 JSNI 调用 GWT 方法,如下所示:
[instance-expr.]@class-name::method-name(param-signature)(arguments)
您可以在 GWT documentation 中找到所有 JSNI 信息.
关于java - GWT Node 或 Element 监听 onAttach 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38403514/
我的 on 有问题 附上它在他身上做红线并写信给我: “覆盖‘android.support.v4.app.Fragment’中已弃用的方法” 请帮助我理解我做错了什么?为所有的 helper 打交道
我正在尝试使用 API 23 为 Android 应用程序创建一个 DialogFragment。我发现 onAttach 方法已针对此 API 更新,现在需要一个 上下文 作为参数。问题是,我无法让
我正在编写测试,其中 onAttach 生命周期方法中有一些逻辑,但在测试时永远不会调用 onAttach。 这就是我最初尝试测试它的方式 beforeEach(() => { vi
Marionette 版本3.2.0 onAttach 生命周期事件未触发 根据doc The events marked with "*" only fire if/when the region'
在创建 fragment 时,我遇到 getActivity() 为空。因此,为了缩小问题的范围,我在 onAttach(Activity activity) 中保留了一个 Activity 的本地副
我创建的 fragment 取决于其父 Activity 的一些属性。我浏览了 Fragment Life cycle文件。我需要将 Activity 的副本存储在一个变量中,以便以后可以访问它。有两
我的 Fragment 从 AppCompatActivity 启动时没有调用 onAttach(context) 方法。 在 XML 中创建 fragment : 但如果我从 support.v4
我更新了我的应用程序以使用最新的支持库(版本 23.0.0),我发现他们弃用了 Fragment 类的 onAttach() 函数。 代替: onAttach (Activity activity)
所以我有这个角 Dart 组件: @Component(...) class TableCard implements AttachAware, ShadowRootAware { void on
我试图在 fragment 中获取 Activity ,因为我在 getActivity.finish() 上不断收到 空指针异常。 我正在尝试通过以下方式实现这一目标: @Override publ
我创建了一个接口(interface) DataPasserInterface 将数据从 fragment 传递到其托管 Activity 。我在 onAttach 中初始化了界面,如下代码所示,问题
我正在尝试使用类型化回调实现抽象 fragment ,以便在多个子类中使用它。 如何检查 Context 是否是适当类的实例? 我的abstact CallbackFragment代码: public
有什么方法可以保证 onAttach 正常工作吗? @Override public void onAttach(Activity activity) { super.onAttach(act
我有一个自定义类,其父类是 SurfaceView。我让类(class)正常工作,从它自己的线程等绘制到屏幕上。但是我想了解应该如何正确处理问题标题中的方法。 例如,如果我的应用程序正在运行(在手机上
在 onAttach 函数中,eclipse 显示错误说明 The method onAttach(Activity) in the type Fragment is not applicable f
我尝试从 DialogFragment 实现回调。有一个很好的例子,但他们不会从 Fragment 打开此 DialogFragment。 http://developer.android.com/g
将 SDK 更新到 API 级别 23 后,我发现 onAttach (Activity activity) 已弃用,新方法是 onAttach (Context context)。谁能告诉我为什么要
在 Fragment 的生命周期中,onAttach() 方法在 onCreate() 方法之前被调用。我无法解决这个问题。为什么要先附加 Fragment? 最佳答案 TL;DR: 为了不破坏 an
我知道这是 nob 问题,但我无法理解变量 someEventListener 赋值什么?..我们如何将 Activity 与接口(interface) onSomeEventListener) 进行
所以我有一个奇怪的问题,我现在无法解决。 房间游戏 fragment @Override public void onAttach(Activity activity) { super.onA
我是一名优秀的程序员,十分优秀!