AndroidAnnotations不使用继承类

时间:2018-05-04 12:04:39

标签: java android android-fragments android-annotations

我有一个扩展父片段(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
    }
}

但是当我在继承这个片段的类上使用AndroidAnnotations时,"某些条件"是错误的,它不会返回视图。一切都只是空白,而@AfterViews甚至没有被召唤。

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

...

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

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

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

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

非常感谢。

1 个答案:

答案 0 :(得分:1)

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

我认为你已经在你的NavMenuStats中添加了onCreateView方法,所以你要阻止AndroidAnnotations为你编写它。

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

这种情况有效:

MainFragment

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

SonFragment

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

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

也许你忘了在最后用_添加生成的子片段?