三个标签同时启动

Three tabs launching at once

我在我的应用程序中将 ViewPager 与 TabLayout 和片段一起使用。我想让我的应用程序在用户看到时启动片段 activity,但应用程序一次加载 3 个片段。这意味着如果我有 3 个选项卡并且用户实际上在中间片段上,左右片段都已经在 CreateView 上启动。当片段显示在屏幕上而不是在显示的片段旁边时,有什么方法可以让应用程序做某事吗?

您可以通过将此代码段添加到您的 viewpager 中显示的片段来处理此问题:

private int mViewState = 0;
    @Override
    public void onPause() {
        super.onPause();
        setViewState(mViewState & ~1);
    }

    @Override
    public void onResume() {
        super.onResume();
        setViewState(mViewState | 1);
    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        setViewState(mViewState);
    }

    private void setViewState(int newState) {
        newState = getUserVisibleHint() ? newState | 2 : newState & ~2;
        if (newState == 3 && mViewState != 3){
        // I'm visible
        }else if (newState != 3 && mViewState == 3) {
        // I'm hidden
        }
        mViewState = newState;
    }