Hide/Show FragmentTransaction 期间的浮动操作按钮
Hide/Show floating action button during FragmentTransection
我有打开一些消息片段的代码。
private void openMessage(int position) {
MessageRecord item = data.get(position);
item.setIsRead(true);
item.save();
List<MessageRecord> tmp = new ArrayList<>(data);
updateScreen(tmp);
MessagesActivity2 parentActivity = ((MessagesActivity2) context);
parentActivity.fab.hide();
FragmentTransaction ft = parentActivity.getSupportFragmentManager().beginTransaction();
ft.addToBackStack(null);
MessageFragment fragment1 = MessageFragment.newInstance(item);
ft.add(R.id.frame, fragment1);
ft.commit();
}
这条线隐藏了我的工厂。
parentActivity.fab.hide();
但是在我按下返回按钮并 return 到 activity 的视图后,我不知道如何重新打开我的 FAB。
覆盖 activity 中的 onBackPressed()
并根据您的要求在内部检查片段是否为空,然后隐藏您的 FAB
.
不要直接在 Activity 上添加 FAB,而是在一个片段 (FABFragment) 上添加 FAB,然后为您的消息添加另一个片段 (MessageFragment)。
因此,每当您想显示 MessageFragment 时,请使用以下代码替换 FABFragment:
MessageFragment fragment1 = MessageFragment.newInstance(item);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.addToBackStack(null);
ft.replace(R.id.frame, fragment1);
要在片段之间进行通信,请使用接口(https://developer.android.com/training/basics/fragments/communicating.html)
我有打开一些消息片段的代码。
private void openMessage(int position) {
MessageRecord item = data.get(position);
item.setIsRead(true);
item.save();
List<MessageRecord> tmp = new ArrayList<>(data);
updateScreen(tmp);
MessagesActivity2 parentActivity = ((MessagesActivity2) context);
parentActivity.fab.hide();
FragmentTransaction ft = parentActivity.getSupportFragmentManager().beginTransaction();
ft.addToBackStack(null);
MessageFragment fragment1 = MessageFragment.newInstance(item);
ft.add(R.id.frame, fragment1);
ft.commit();
}
这条线隐藏了我的工厂。 parentActivity.fab.hide();
但是在我按下返回按钮并 return 到 activity 的视图后,我不知道如何重新打开我的 FAB。
覆盖 activity 中的 onBackPressed()
并根据您的要求在内部检查片段是否为空,然后隐藏您的 FAB
.
不要直接在 Activity 上添加 FAB,而是在一个片段 (FABFragment) 上添加 FAB,然后为您的消息添加另一个片段 (MessageFragment)。
因此,每当您想显示 MessageFragment 时,请使用以下代码替换 FABFragment:
MessageFragment fragment1 = MessageFragment.newInstance(item);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.addToBackStack(null);
ft.replace(R.id.frame, fragment1);
要在片段之间进行通信,请使用接口(https://developer.android.com/training/basics/fragments/communicating.html)