我在我的项目中使用 TabLayout,它可能有超过 10 个 TabItem。现在我想在用户滚动 TabLayout 时隐藏另一个 View 。
注意:我没有使用任何 ViewPager。
最佳答案
View 的每个实例都会调用 getViewTreeObserver()
。您可以使用 addOnScrollChangedListener()
向其添加 OnScrollChangedListener()
。
就您而言:
tabLayout.getViewTreeObserver().addOnScrollChangedListener(() -> {
int scrollX = tabLayout.getScrollX(); // Current x scrolling position
// We know that we have at least one child
int maxScrollWidth = categoryTabLayout.getChildAt(0).getMeasuredWidth() - windowSize.x;
// Do whatever you want here
});
windowSize 是从 WindowManager
访问的 Point
private Point windowSize = new Point();
// Calculate the position if this window
getActivity().getWindowManager().getDefaultDisplay().getSize(windowSize);
通过使用上述方法,您将获得有关所需的正确滚动位置的更新
关于android - 如何在 Android TabLayout 中监听滚动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566544/