Android 操作按钮保留以前的 View

标签 android android-actionbar master-detail

我已经使用 fragment 在 Android 中创建了一个主细节 View 。 (目前我正在考虑手机布局,而不是平板电脑布局)。

在我的主视图中,我有一个项目列表,并在操作栏中显示一个“添加”按钮。

在详细信息 View 中,我显示了所选项目的详细信息、操作栏中的“删除”按钮和“编辑”按钮。

现在,按照我的方式,“添加”按钮仍然存在于我的详细 View 的操作栏中。

大师类:

public class AvailableZonesFragment extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_available_zones, menu);
    }
}

主菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/add"
        android:icon="@android:drawable/ic_menu_add"
        android:orderInCategory="1"
        app:showAsAction="always"
        android:title="Add">
    </item>
</menu>

详细信息类:

public class ZoneDetailsFragment extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_zone_details, menu);
    }
}

详细菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/edit"
        android:icon="@android:drawable/ic_menu_edit"
        android:orderInCategory="1"
        app:showAsAction="always"
        android:title="Edit">
    </item>
    <item
        android:id="@+id/remove"
        android:icon="@android:drawable/ic_menu_delete"
        android:orderInCategory="2"
        app:showAsAction="ifRoom"
        android:title="Delete">
    </item>
</menu>

最佳答案

您是否尝试调用

menu.clear();

作为详细信息 fragment 中 onCreateOptionsMenu 的第一行,以从上一个 fragment 中删除菜单项。

关于Android 操作按钮保留以前的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29693463/

相关文章:

android - 我如何在 Android 上使用 MapBox

android - 修复 android 和 iOS 原生 react 中的行数

java - 为什么 Android Studio 会丢弃我的代码样式设置?

android - 如何使android操作栏标题居中对齐?

java - Android ActionBar - 尽管 API 级别 14,但属性 showAsAction 没有资源

android - 从上下文操作栏访问 ListView 项目的文本

mysql - 我有主从表,我想复制它们

android - 如何启用 Android 下载管理器

xamarin.forms - Xamarin.Forms v3 中的 MasterDetail + 从右到左

reporting-services - 在 SSRS 中过滤嵌套数据区域