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)