AppBarLayout.OnOffsetChangedListener onOffsetChanged 方法不断调用

AppBarLayout.OnOffsetChangedListener onOffsetChanged method is calling continously

我正在使用 OnOffsetChangedListener interface to detect AppBarLayout's offset change. It working fine but the problem is onOffsetChanged 方法不断调用。我怎样才能停止这个连续的通话。

   offsetChangedListener = (appBarLayout, verticalOffset) -> {
        Log.i(TAG, "onOffsetChanged: verticalOffset: " + verticalOffset);

        //  Vertical offset == 0 indicates appBar is fully expanded.
        if (Math.abs(verticalOffset) > 200) {
            appBarExpanded = false;
             invalidateOptionsMenu();
        } else {
            appBarExpanded = true;
             invalidateOptionsMenu();
        }
    };

提前致谢。

找到问题原因了。每次 AppBarLayout 的偏移量发生变化时,代码都会调用 invalidateOptionsMenu() 方法。此 invalidateOptionsMenu() 方法重新创建 Menu 并导致 AppBarLayout 的偏移量更改。所以 onOffsetChanged 方法被一次又一次地调用。我已经删除了 invalidateOptionsMenu() 方法并更改了我的逻辑以实现我的目标。