Android 停止侦听更多侦听器事件
我听的是Android 停止侦听更多侦听器事件,android,listener,event-listener,Android,Listener,Event Listener,我听的是onGlobalLayoutListener,如下面的代码所示。我只想听一次。 一旦调用了onGlobalLayout(),我想停止听它 我尝试使用removeOnGlobalLayoutListener()方法,但该方法会发出警告,调用所需的API级别16(当前最小值为14) 我还尝试使用了removeglobalonlyoutliner。但它已被弃用 代码: searchWebView.getViewTreeObserver().addOnGlobalLayoutListener(
onGlobalLayoutListener
,如下面的代码所示。我只想听一次。
一旦调用了onGlobalLayout()
,我想停止听它
我尝试使用removeOnGlobalLayoutListener()
方法,但该方法会发出警告,调用所需的API级别16(当前最小值为14)
我还尝试使用了removeglobalonlyoutliner
。但它已被弃用
代码:
searchWebView.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Do something
// Remove listener
}
});
如何删除onGlobalLayoutListener
编辑:
searchWebView.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Do something
// Remove listener
}
});
您可以使用以下代码删除
OnGlobalLayoutListener
。在RemoveGlobalOnlyOutliner()
上仍将有一个已弃用的删除线。但是,lint警告将通过使用注释来处理
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
searchWebView.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
searchWebView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
searchWebView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
});
阅读此线程[ViewTreeObserver][1]:@strike,它给出了相同的错误。查看我编辑的问题的图片。第一个被认为是不推荐的,因此越过了它的界限。第二个是在16级中添加的,而我的是14级。你知道为什么removeglobalonlyoutliner()
方法的上方还有一条黑线吗?当这个方法停止工作时,它不会引起问题。android不再支持它。?@Akash这是eclipse显示代码中正在使用不推荐的方法的方式。对于所有密集型用途,以这种方式使用不推荐的方法是正确的<代码>此方法停止工作时不会导致问题。android不再支持它。?
。否。该方法调用将针对支持它的API版本进行。android并没有从旧的API中删除功能。它在新的API版本中添加了新的(可能更好的)特性。旧的API保持不变。如果说有什么不同的话,那就是android发布的所有compat库都会让它们变得更好!(很抱歉,无法抗拒!)@RussWheeler出于所有目的。。这使。。所以很更多感觉谢天谢地,一般来说我都不知道鸡蛋粒:)不用担心@Vikram。多听些鸡眼,生活会更有趣:)