我在Matlab遇到有关房产听众的麻烦。我已在YLim
触发的轴的PostSet
和h = addlistener(myaxes,{'XLim','YLim'},'PostSet',@myfunc);
属性中添加了一个监听器:
x
现在我希望我的程序在两个属性都发生变化之后做一些事情,或者只有一个属性发生了变化,但在后一种情况下我必须确保另一个没有变化。
在轴上使用缩放工具时,属性始终按照y
,然后XLim
的顺序更改。所以在这种情况下我不会有问题,但有时我会以编程方式设置YLim
或XLim
属性并希望触发相同的功能。不知怎的,我必须能够判断这两个属性中是否只有一个触发了侦听器或两者都触发了。
在当前阶段,我的回调执行两次:一次用于YLim
,一次用于com.android.internal.telephony
。我希望它只执行一次,而且在我知道这两个属性没有进一步改变之后。你知道怎么做吗?
答案 0 :(得分:0)
我不相信可以直接检测“同时”set
,因为实际的属性分配,而不仅仅是PostSet
事件,是单独执行的,没有其他信息是传递给PostSet
回调,让你知道另一个回来。在第一个回调中停在断点处,轴完全更新到新的XLim
,而没有任何迹象表明即将发生更改YLim
。
根据您对代码的使用方式和优先级的假设,可以采用多种方法组合变通方法。我能想到的所有内容至少使用以下原则之一:
YLim
分配在完成XLim
PostSet
回调的工作之前触发第二次回调XLim
而不YLim
,以便在某种程度上区别于缩放工具等内容所做的分配XLimMode
属性,无论其值是否有变化这一事实。如果XLim
的值已经XLimMode
,则以编程方式设置manual
将不会设置webView.evaluateJavascript(yourScript,null);
。