如何在GXT 4中禁用Touch支持?

问题描述

我正在构建,我在"edge"添加"gxt.user.agent",它启用了许多不必要的手势内容。如何禁用它? gxt.device设置为"desktop"

启动错误

java.lang.IllegalStateException: Event system already initialized at UnkNown.java_lang_Throwable_Throwable__Ljava_lang_String_2V(bootstrap-0.js@8:1740) at UnkNown.java_lang_Exception_Exception__Ljava_lang_String_2V(bootstrap-0.js@55:5413) at UnkNown.java_lang_RuntimeException_RuntimeException__Ljava_lang_String_2V(bootstrap-0.js@55:5423) at UnkNown.new java_lang_IllegalStateException_IllegalStateException__Ljava_lang_String_2V(bootstrap-0.js@69:20816) at UnkNown.com_google_gwt_user_client_impl_DOMImplStandard_ensureInit__V(bootstrap-0.js@87:11298) at UnkNown.com_sencha_gxt_core_client_gestures_impl_PointerEventsSupportImpl_$clinit__V(bootstrap-0.js@5:15166) at UnkNown.com_sencha_gxt_core_client_gestures_PointerEventsSupport_$clinit__V(bootstrap-0.js@3:14668) at UnkNown.com_sencha_gxt_cell_core_client_AbstractEventCell_$addCellGestureAdapter__Lcom_sencha_gxt_cell_core_client_AbstractEventCell_2Lcom_sencha_gxt_core_client_gestures_CellGestureAdapter_2V(bootstrap-0.js@5:4934) at

解决方法

addCellGestureAdapter(问题栈的顶部-由于栈太短,目前尚不清楚该调用什么)被调用为时已晚。 DomImplStandard.ensureInit()方法被设计为在任何元素都附加了侦听器之前很早就被调用,以便可以为连接的任何元素准备正确的处理程序。

GXT 4来源不公开,支持也很薄(Sencha做了blog post,讨论了应如何使用StackOverflow代替自己的论坛,但实际上他们似乎没有检查StackOverflow),但是我认为,有一种方法可以在页面生命周期的早期调用,以实现此目的。尝试将此行添加为onModuleLoad中的第一行,以确保在连接第一个元素之前就已将其连接起来:

PointerEventsSupport.impl.isSupported();

您甚至不需要使用返回值,只需检查它就足够了,以确保所有内容都尽早连接好。他们的docs about getting started with touch中都没有提到这一点,因此我不得不假设这通常会自动正确地进行连接,并且您的应用程序中有一些独特的功能可以阻止这种情况。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...