gpt4 book ai didi

android - 处理带有两个 fragment 的操作栏

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:04 25 4
gpt4 key购买 nike

我有一个包含两个 fragment 的布局,两个 fragment 都有自己的操作栏,每个操作栏都有自己的操作项和菜单。当我的应用程序处于横向模式并且两个 fragment 都显示在屏幕上时,框架似乎选择在“右侧”(或第二个 fragment )显示操作栏,这意味着左侧的 fragment (第一个 fragment ) 缺少其操作项和菜单选项。

当应用程序处于纵向模式时一切正常,所以我不确定是否应该做一些事情来处理同时显示的 fragment 。谢谢。

编辑

在我的每个 fragment 中,我都使用此代码将菜单项添加到操作栏:

在 fragment 1 中:

    @Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
inflater.inflate(R.menu.fragment_menu_1, menu);
super.onCreateOptionsMenu(menu, inflater);
}

在 fragment 2 中:

    @Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
inflater.inflate(R.menu.fragment_menu_2, menu);
super.onCreateOptionsMenu(menu, inflater);
}

更新:

显然使用 setRetainInstance(true) 是导致菜单不刷新的原因。我之所以使用它,是因为我有一个 AsyncTask,如果设备旋转,它会抛出异常。所以我解决了一个问题,但又解决了另一个问题。

最佳答案

我认为您的想法不正确。操作栏不显示为任何 fragment 的一部分,但实际上是 Activity 的一部分。如果您在 fragment 中声明通过 setHasOptionsMenu(true) 提供操作项,那么所有操作项都将显示为操作栏的一部分。然后,您可以通过覆盖 onOptionsItemSelected(MenuItem item) 来采取适当的操作。

关于android - 处理带有两个 fragment 的操作栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10096625/

25 4 0