有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java onCreate on fragment总是从错误的位置开始

在所有使用片段的示例中,我看到了一个问题

我的想法是,在创建下一页之前,应该在滑动之后调用每个片段的onCreate函数

在所有情况下,当必须显示第1页时调用片段1和2的onCreate,当必须显示第2页时调用片段3的onCreate

为什么会出现这个问题


共 (2) 个答案

  1. # 1 楼答案

    好的,这个问题解决了

    private boolean isViewShown = false;
    private boolean isFragmentLoaded = false;
    
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser   && !isFragmentLoaded) {
            isViewShown = true;
            TableLayout table = (TableLayout)getActivity().findViewById(R.id.table);
            display_album(table);
    
            isFragmentLoaded = true;
        } else {
            isViewShown = false;
        }
    }
    
  2. # 2 楼答案

    The my idea is that the onCreate function of each fragment should be called after swipe so before the creation of the next page.

    从“swipe”中,我假设您正在ViewPager中托管片段。它有一个offscreen page limit来控制当前页面每侧预创建的片段数量。默认值为1,因此在第0页也会创建第1页片段

    如果你真的希望片段onCreate()在片段变为可见时准确触发,请将屏幕外页面限制设置为0将页面限制设置为0不起作用,因为默认最小值为1

    如果您只想检测片段何时可见,可以连接到^{}