我在我的项目中使用tablayout,它可能有10个以上的tabitem。现在我想在用户滚动tablayout时隐藏另一个视图。
注意:我没有使用任何viewpager。
最佳答案
视图的每个实例都调用getViewTreeObserver()
。您可以使用OnScrollChangedListener()
向其添加addOnScrollChangedListener()
。
就你而言:
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
访问的点。private Point windowSize = new Point();
// Calculate the position if this window
getActivity().getWindowManager().getDefaultDisplay().getSize(windowSize);
通过使用上述方法,您将获得所需的正确滚动位置的更新
关于android - 如何在TabLayout Android中监听滚动事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41566544/