Java AndroidAnnotations不使用继承的类
我有一个片段NavMenuStats,它扩展了父片段NavMenu 此父片段覆盖onCreateView方法,如下所示:Java AndroidAnnotations不使用继承的类,java,android,android-fragments,android-annotations,Java,Android,Android Fragments,Android Annotations,我有一个片段NavMenuStats,它扩展了父片段NavMenu 此父片段覆盖onCreateView方法,如下所示: @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (some condition) { View
@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
}
}
但是,当我在继承这个片段的类上使用AndroidAnnotations时(其中某些条件为false),它不会返回视图。一切都是空白的,@afterview甚至没有被调用
我还尝试了以下操作,而不是返回null:
...
} else {
return super.onCreateView(inflater, container, savedInstanceState);
}
我知道我必须让AndroidAnnotations处理布局膨胀,如下所述:
这就是为什么我在父片段的onCreateView中返回null或super方法
我错过了什么?有什么想法吗
非常感谢。没有您的NavMenuStats代码很难回答,但我认为您的问题就在那里 我认为您也将onCreateView方法添加到了NavMenuStats中,因此您正在阻止AndroidAnnotations为您编写它 尝试通过@EFragment注释类完全删除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;
}
}
也许你忘了添加生成的子片段,最后加上u?谢谢你的回答。对不起,我不能在这里发布很多代码。但是没有,我在NavMenuStats中没有onCreateView。它正在使用其父类中的onCreateView。我尝试重写它并调用super方法/将其保留为空,但没有乐趣。有没有其他方法可以忽略父片段中的onCreateView?您是否也可以从父片段中删除它,或者不惜一切代价需要它?我的意思是,你们也可以注释父片段,让AndroidAnnotations也为你们工作。这可能是一个可行的解决方案吗?这是我的第一个解决方案:D,但遗憾的是,不,我不能删除它。哇。非常感谢你。如果你需要更多信息,请告诉我。我已经回答:如果你能发现你的问题,请告诉我