android - 如何在 Android TabLayout 中监听滚动事件

标签 android android-layout android-tablayout

我在我的项目中使用 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/

相关文章:

Android 布局帮助 - 屏幕的一半应该倒置

android - 如何在不更改 EditText 中的文本大小的情况下更改提示文本大小

android - 停止或杀死玩家的通知按钮

android - 仅适用于 Nexus 5/5x 模拟器的 Play Store 应用程序

android - 如何设置宽度等于android上的另一个小部件

java - 无法让所有UI组件出现在RelativeLayout中

android - Android 电子市场下载有大小限制吗?

android - 在 TabLayout(Android 设计支持库)中更改 Tab 的背景颜色不会占用整个选项卡空间

android - TabLayoutMediator 不保留 TabItem 属性

android - 在 com.android.support :design:23. 1.0 中更改左侧、顶部、右侧或底部的 TabLayout 图标