Android 动作按钮保留在之前的视图中
Android Action buttons remain from previous view
我使用片段在 Android 中创建了主细节视图。 (现在我正在考虑 phone 布局而不是平板电脑布局)。
在我的主视图中,我有一个项目列表,并且在操作栏中显示了一个 "add" 按钮。
在我的详细视图中,我显示了所选项目的详细信息,操作栏中有一个 "delete" 按钮和一个 "edit" 按钮。
按照我的做法,"add" 按钮仍然出现在我的详细信息视图的操作栏中。
硕士class:
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>
详情class:
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();
作为详细信息片段中 onCreateOptionsMenu 中的第一行,从上一个片段中删除菜单项。
我使用片段在 Android 中创建了主细节视图。 (现在我正在考虑 phone 布局而不是平板电脑布局)。
在我的主视图中,我有一个项目列表,并且在操作栏中显示了一个 "add" 按钮。
在我的详细视图中,我显示了所选项目的详细信息,操作栏中有一个 "delete" 按钮和一个 "edit" 按钮。
按照我的做法,"add" 按钮仍然出现在我的详细信息视图的操作栏中。
硕士class:
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>
详情class:
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();
作为详细信息片段中 onCreateOptionsMenu 中的第一行,从上一个片段中删除菜单项。