我正在使用 OnOffsetChangedListener检测AppBarLayout偏移变化的接口(interface)。它工作正常,但问题是 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()
方法并更改我的逻辑以实现我的目标。
关于android - AppBarLayout.OnOffsetChangedListener onOffsetChanged 方法不断调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50785220/