在我的应用中,我正在使用导航组件。我只使用了一个Activity和几个Fragment.MainActivity托管了所有Fragment。我已经在MainActivity中设置了自定义AppBar。我想为某个Fragment更改AppBar。为此,这是我的代码
public class MessageFragment extends Fragment {
private FragmentMessageBinding messageBinding;
private ChatActionBarBinding barBinding;
ActionBar actionBar;
public MessageFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
messageBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_message, container, false);
return messageBinding.getRoot();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
barBinding = DataBindingUtil.inflate(layoutInflater, R.layout.chat_action_bar, null, false);
actionBar.setCustomView(barBinding.getRoot());
}
}
当我导航到该垂直片段时,AppBar发生了预期的变化。但是问题是当我按下“后退”按钮或导航到另一个片段时,AppBar保持不变。它不会根据片段而改变。 这是我的应用程序的一些屏幕截图。
有什么解决办法吗?