如何解决Extjs中的问题,当我的应用程序是RTL?

szqfcxe2  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(158)

当我将面板放到非拖放区域时,Extjs会以错误的方向将拖动元素动画化回源元素,如何修复此行为?

这是我的Dragzone和DropZone的代码,当我将应用程序更改为LTR时,它很好,当我将它切换回RTL时,问题再次出现。

function calEventPnlSourceDD(sender){
  sender.mX=sender.getX();
  sender.dragZone = new Ext.dd.DragZone(sender.getEl(), {
        ddGroup: 'dgCal',
        getDragData: function(e) {
            var sourceEl = e.getTarget(sender.itemSelector, 10);
            if (sourceEl) {
                /*sourceEl=sourceEl.parentElement;*/                             
                d = sourceEl.cloneNode(true);
                d.id = Ext.id();
                return {
                    ddel: d,
                    sourceEl: sourceEl,
                    repairXY: Ext.fly(sourceEl).getXY()
                }
            }
        },
        getRepairXY: function() {
                return this.dragData.repairXY;
          },
        onDrag: function(e) {

        }
  });
}
function calEventPnlTargetDD(sender){
 sender.dropZone = new Ext.dd.DropZone(sender.el, {
        ddGroup: 'dgCal',
        isDropAllowed: false,
        getTargetFromEvent: function(e) {
            return e.getTarget(sender.rowSelector);
        },              
        getAllowed: function(e) {
            var proto = Ext.dd.DropZone.prototype;
            var tg=e.target;           
            this.isDropAllowed=true;  
            return proto.dropAllowed;
        },
        notifyOver: function(source,e,data) {           
            return this.getAllowed(e);
        },
        onNodeDrop: function(target, dd, e, data) {            
         return this.isDropAllowed;
        }
  });
ldfqzlk8

ldfqzlk81#

9天后,我发现了问题的原因,在我的本地文件local-he.js我删除了这一行:

Ext.define('Ext.locale.container.Viewport',{override:'Ext.container.Viewport',requires:['Ext.rtl.*'],rtl:!0});

因为我已经在UniMainModule中将我的应用定义为RTL。
我用 Delphi 使用Unigui框架:-)

相关问题