AndroidAnnotations 不适用于继承 class

AndroidAnnotations not working with inherited class

我有一个扩展父片段 (NavMenu) 的片段 (NavMenuStats)。

这个父片段覆盖了 onCreateView 方法,像这样:

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    if (some condition) {

        View view = ...

        // Do stuff and return view. Everything works well

        return view;

    } else {

        return null; // since @Nullable
    }
}

但是当我在继承此片段的 class 上使用 AndroidAnnotations 时,"some condition" 为假,它不会 return 视图。一切都是空白,@AfterViews 甚至都没有被调用。

我也试过,而不是 returning null,到:

...

} else {
    return super.onCreateView(inflater, container, savedInstanceState);
}

我知道我必须让 AndroidAnnotations 来处理布局 inflation,如下所述: androidannotations @AfterViews is not calling and editText is null

这就是为什么我在父片段的 onCreateView() 中 returning null 或 super 方法。

我错过了什么?有什么想法吗?

非常感谢。

没有你的 NavMenuStats 代码很难回答,但我认为你的问题就在那里。

我认为您也已将 onCreateView 方法添加到您的 NavMenuStats 中,因此您阻止了 AndroidAnnotations 为您编写它。

尝试通过您的 @EFragment 注释 class.

完全删除 onCreateView 方法

在这种情况下有效:

主要片段

public class MainFragment extends Fragment{

    public boolean nullView = false;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        return nullView ? null : inflater.inflate(R.layout.fragment_main, container, false);
    }
}

儿子片段

@EFragment(R.layout.fragment_son)
public class SonFragment extends MainFragment {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.nullView = true;
    }
}

你可能忘了在最后添加带_的生成子片段?