gpt4 book ai didi

java - AndroidAnnotations 不适用于继承类

转载 作者:行者123 更新时间:2023-12-02 11:17:25 26 4
gpt4 key购买 nike

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

这个父 fragment 重写 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
}
}

但是当我在继承此 fragment 的类上使用 AndroidAnnotations 时,“某些条件”为 false,它不会返回 View 。一切都是空白,@AfterViews 甚至没有被调用。

我也尝试过,而不是返回 null,而是:

...

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

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

这就是为什么我在父 fragment 的 onCreateView() 中返回 null 或 super 方法。

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

非常感谢。

最佳答案

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

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

尝试通过 @EFragment 带注释的类完全删除 onCreateView 方法。

在这种情况下它有效:

主 fragment

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);
}
}

子 fragment

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

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

也许您忘记添加生成的子 fragment 并在末尾添加 _ ?

关于java - AndroidAnnotations 不适用于继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50174534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com