当前位置: 首页 > 知识库问答 >
问题:

Android:第二次打开碎片时工具栏上的“向上”按钮消失

何禄
2023-03-14

当你再次打开第二个片段时,没有抽屉切换,也没有向上按钮。当你按下tablet back按钮时,切换会再次出现,但up按钮不会出现,直到你重新启动应用程序。

要将抽屉切换到向上按钮,我在第二个片段的onCreate中使用以下命令:

第二个片段onCreate():

//let the drawer toggle disappear
activity.toggle.setDrawerIndicatorEnabled(false); 
//let the up button appear
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

up按钮的功能是通过follwing命令实现的:

toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
});
int count = getFragmentManager().getBackStackEntryCount();
if (count < 1) {
     super.onBackPressed();
     Intent intent = new Intent(Intent.ACTION_MAIN);
     intent.addCategory(Intent.CATEGORY_HOME);
     startActivity(intent);
} else {
     getFragmentManager().popBackStack();
     if (count == 1) {
          toggle.setDrawerIndicatorEnabled(true);
     }
}
activity.getFragmentManager().beginTransaction()
     .replace(R.id.content_frame, FirstFragment.newInstance())
     .addToBackStack(null).commit();

当使用工具栏时,我不得不切换显示选项,以不使用主页作为在此期间。否则,ToolbarWidgetWrapper(内部Android.support.v7.internal.Widget包的)中的setDisplayOptions()方法在第二次输入相同片段时不会重新创建图标。只是把这个留在这里,等别人也碰到这个问题的时候。

但我不明白他的意思。有没有人同样的问题或任何例子代码如何解决?

共有1个答案

强化
2023-03-14

我想出来了!意思是在

@Override
public void onBackPressed() {
...
}

您需要包括以下内容:

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

所以在第二次的时候,你的后退图标就会出现。

 类似资料:
  • up按钮的功能是通过follwing命令实现的: 活动onCreate(): 活动onBackPressed():

  • 如何在Android上删除v7工具栏上的后退按钮? 我突出显示了下图中试图删除的按钮:

  • 在此对话框您可以指定当浏览磁盘文件夹 (“在压缩文件外部时显示”选项) 或查看压缩文件内容 (“在压缩文件内部时显示”选项 ) 时,要显示哪一些工具栏按钮。可以改变按钮的顺序,只要选择您希望移动的按钮并按下“上移”或“下移”来改变它们的位置。如果您要恢复默认工具栏配置,按下“默认”按钮。 “分隔符”按钮在选择的当前按钮前插入一个分隔符线。如果您要移除一个分隔符,或者取消它的选择状态,或者再次按下“

  • 是否可以在工具栏中同时显示主页图标和后退图标?1) 是否可以更改后退按钮图标和主页图标的显示顺序。目前,它首先显示箭头按钮,然后显示徽标(主页按钮) 2) 第二个要求是在单击home图标并返回上一个屏幕(如果是back按钮)时清除活动堆栈。 我有以下代码,将显示一个箭头键和主页图标,这是设置为标志。是否可以处理这两个图标上的点击事件: 我可以通过onOptionsITemSelec方法处理点击箭头

  • 问题内容: 我正在开发我的第一个android计算器应用程序。我陷入一个单一的缺陷。我添加了几个按钮,然后单击这些按钮,它将把各自的文本放在“ 字段”上。主要问题描述如下:在运行项目时,必须单击两次按钮才能将相应的文本首次放置在字段上。例如,单击时将“ 1”放在字段上。在运行时,首先单击该按钮无效。仅在第二次单击时,它将“ 1”放在字段上。 该守则如下: XML按钮和EditField, Main

  • 碎片工具箱 PHPCMS V9中依然保留了PHPCMS 2008中的碎片功能。 {pc:block pos="index"}{/pc} 以上的代码可以调用碎片功能。 参数对照表 参数 默认值 必须 说明 pos null 是 碎片位置标识