Android碎片和“后退”按钮问题

秀弥

我是android片段开发的新手。
按下后退按钮时出现此问题...即使我在以下位置使用myActivity.invalidateOptionMenu()和getActionBarActivity.setTitle(),操作栏菜单及其标题也没有更新:onAttach,onDetach,onCreate,onCreateView和onCreateOptionMenu我清除了菜单,但是一切都没有用!
当我使用抽屉布局重新实例化片段时,有时会再次遇到相同的问题!
例如,我有ListingFragment,EditingFragment,DetailsFragment和ImportFragment这是带有EditingFragment选项
PS的ListingFragment :当我回到编辑片段时,菜单不起作用,不再起作用了!

这里检查屏幕截图

我遇到的第二个问题是,片段有时被添加到同一容器中,请参见下面的屏幕截图!“ import”一词是ImportFragment所包含的内容(加上操作栏标题),打开片段DetailsFragment时,其他视图(以及菜单)都在屏幕上。一旦我点击了片段中的导入按钮,它将显示以下屏幕!

这里检查屏幕截图

有谁知道如何重新安排事情以获得良好的工作应用程序?

这是相关的代码:

private void setActionBarTitle(String title) {
    ((ActionBarActivity) getActivity()).getSupportActionBar().setTitle(
            title);

}


public void restoreActionBar() {
    ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.clear();
    return super.onCreateOptionsMenu(menu);
}

public void restoreMenu()
{
    restoreActionBar();
    this.invalidateOptionsMenu();
}
秀弥

对于任何可能也面临相同问题的人,我已经找到了解决方法(或方法)

菜单问题:我添加的片段不是“替换它们”。每次片段没有任何“选项菜单”时,都会将最后一个菜单添加到操作栏中。您要么停止添加并开始替换片段,要么为新的“空”菜单充气。

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    setHasOptionsMenu(true);
    menu.clear();
    inflater.inflate(R.menu.main, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

主要在哪里:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.mypackage.MainActivity" > </menu>

后退按钮问题:将以下代码添加到您的活动中:

    @Override
public void onBackPressed() {
    if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
        this.finish();      } else {
        getSupportFragmentManager().popBackStack();
        if(fragmentX.isResumed())
            getSupportActionBar().setTitle("the title");
    }
}

PS:您可以使用isResumed或isVisible。与操作栏标题相关的所有内容:保留对您添加的片段的引用。您既可以使用片段本身来更改操作栏标题,也可以通过使用以下活动来变通并更改标题:

if(fragmentX.isVisible()) getSupportActionBar.setTitle(getString(R.string.your_string_name));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android 后退按钮行为问题...

来自分类Dev

Android后退按钮渲染问题

来自分类Dev

ActionBar后退按钮和android后退按钮之间的区别

来自分类Dev

Android-“后退”按钮会导致问题

来自分类Dev

Android活动使用Extras和后退按钮问题调用相同的活动

来自分类Dev

Android-覆盖ActionBar后退和设备后退按钮

来自分类Dev

android碎片问题

来自分类Dev

在Android中隐藏首页和后退按钮

来自分类Dev

在Android中隐藏首页和后退按钮

来自分类Dev

在Android中禁用主页和后退按钮

来自分类Dev

GoBack() 与 Android 硬件后退按钮和 componentDidMount()

来自分类Dev

Android中的后退按键行为和问题

来自分类Dev

Rails验证失败和浏览器后退按钮问题

来自分类Dev

登录和注销后MVC 6中的“后退”按钮问题

来自分类Dev

系统覆盖窗口导致键盘和后退按钮的触摸问题

来自分类Dev

在Android中覆盖顶部菜单问题的后退按钮事件

来自分类Dev

在Android中覆盖顶部菜单问题的后退按钮事件

来自分类Dev

后退按钮和ViewPager

来自分类Dev

后退按钮和ViewPager

来自分类Dev

createDrawerNavigator 和后退按钮

来自分类Dev

Android应用-后退按钮

来自分类Dev

Laravel 中的后退按钮问题

来自分类Dev

带Ionic和Angular的Phonegap Android后退按钮

来自分类Dev

使后退按钮和操作栏后退相同

来自分类Dev

Android碎片和目标版本

来自分类Dev

Android:检测后退按钮的释放

来自分类Dev

Android:从类实现后退按钮

来自分类Dev

Android 改变后退按钮的形状

来自分类Dev

android中的后按碎片问题