Android 链式动作模式
在我的活动中,我有一个动作模式定义如下Android 链式动作模式,android,Android,在我的活动中,我有一个动作模式定义如下 @Override public void onShowPlace(final String placeId, final String placeName) { Log.i("PLACE", placeId); actionModeFeedByLocation = startSupportActionMode(new ActionMode.Callback(){ @Override public bool
@Override
public void onShowPlace(final String placeId, final String placeName) {
Log.i("PLACE", placeId);
actionModeFeedByLocation = startSupportActionMode(new ActionMode.Callback(){
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.setTitle(placeName);
om.slideHorizontal(R.id.overlay_nf_bylocation_fragment_container,
NewsfeedFragment.newInstance(om), TAG_NFBYLOCATION_FRAGMENT);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
Log.i("DESTROY_ACTIONMODE", "TEST");
om.back();
}
});
}
这将呈现覆盖片段中单个位置的新闻提要。从这个提要中,我想通过创建另一个动作模式,在第二个叠加中显示细节:
@Override
public void onShowUser(final User user) {
actionModeUserProfile = startSupportActionMode(new ActionMode.Callback(){
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.setTitle(user.getFbName());
om.slideHorizontal(R.id.overlay_nf_userprofile_fragment_container,
UserProfileFragment.newInstance(user.getFbId(), user.getFbName(), user.getGender()), TAG_USERPROFILE_FRAGMENT);
Log.i("ACTION_MODE", String.valueOf(actionModeFeedByLocation == actionModeUserProfile));
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
om.back();
}
});
}
不幸的是,这不起作用;对用户详细信息的调用将破坏第一个操作模式
我使用动作模式来保持一致的“后退”行为。如图所示,这就是我需要在视觉上实现的目标: 需要注意的是:
- 这些片段以重叠的形式出现(除非对它们调用“back”,否则不应销毁,因此我在活动xml中为每个片段创建了容器)
- “主页”(第一个)屏幕为SupportActionBar设置了工具栏
我需要的是后退按钮(在页眉+设备按钮中)在每个覆盖层上保持一致,并在以后正确删除每个覆盖层 我通过覆盖
onBackPressed
和onoptionItemSelected
解决了这个问题,并通过上述回调中的自定义代码手动同步工具栏标题/管理片段backbackback 我通过覆盖onBackPressed
和onoptionItemSelected
解决了这个问题,并通过上述回调中的自定义代码手动同步工具栏标题/管理片段backbackback