每个片段的工具栏都会导致内存问题

amo*_*the 3 android android-fragments android-activity android-toolbar

我在我的应用程序中为每个片段指定了工具栏.

以下是要设置工具栏的片段中的代码.setToolbar是一种Activity使用接口从片段调用的方法.

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    Toolbar toolbar = view.findViewById(R.id.toolbar);
    if (mListener != null) {
        mListener.setToolbar(toolbar);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,因为当片段被破坏时我没有删除工具栏,导致内存泄漏.我想知道我应该在哪里删除工具栏片段以及如何删除.

知道我应该在哪里以及如何发布片段中的工具栏?

根据我之前提出的问题我可以分别为每个片段设置工具栏.如何处理导航抽屉我被告知我可以在每个片段中有一个工具栏但现在我面临内存泄漏.

Man*_*ngh 5

不是分别为每个片段创建工具栏,而是在这些片段的父活动中创建一个工具栏.

如果您担心每个片段中的菜单选项,则无需担心.只需编写每个片段的setHasOptionsMenu(true)内部onCreateView方法.也覆盖onCreateOptionsMenuonOptionsItemSelected在每个片段中.活动工具栏将自动反映菜单选项中的更改.

注意:始终从Android Studio提供的模板生成活动.它将为您节省时间和精力.您可以随时删除您认为不必要的所有锅炉板代码.

  • 在某些情况下,每个片段的单独工具栏很有用 - 例如。Activity 中每个 Fragment 中 ColapsingToolbar 的不同实现。所以这个答案没有为此提供解决方案。 (2认同)