java - SupportActionBar 后退/主页按钮必须单击两次才能工作
问题描述
我有一个包含两个片段的活动:Fragment1 和 Fragment2。片段 1 上有一个按钮,用于显示片段 2,当它出现时,我在 SupportActionBar 中显示返回/主页按钮。但是,当片段 2 可见并且我想返回片段 1 时,我必须每次单击返回/主页按钮两次才能看到它实际切换。
为什么我必须点击两次?
注意:我的日志命令打印两次,但后退按钮操作只发生一次。
我的活动:
在 OnCreate
Globals.actionBar = this.getSupportActionBar();
Globals.actionBar.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
Globals.actionBar.setTitle("");
然后在文件中进一步向下:
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Log.d("~navbar~","clicked Back Button");
super.onBackPressed();
return true;
}
Log.d("~navbar~","clicked: " + item.getItemId());
return super.onOptionsItemSelected(item);
}
片段 1:在 OnCreate 中
Globals.actionBar.setTitle("Fragment 1");
在片段 2 中:在 OnCreate 中:
Globals.actionBar.setTitle("Fragment 1");
Globals.actionBar.setDisplayHomeAsUpEnabled(true);
Globals.actionBar.setDisplayShowHomeEnabled(true);
注意:我将 actionBar 设为全局变量。
解决方案
推荐阅读
- pandas - 将 DataFrame [df] 附加到现有 Excel 文件的现有工作表 - 辅助函数不起作用
- c - 当文件被另一个程序打开时自动文件缓冲区刷新*仅当*其他程序尚未运行 (macOS)
- c++ - <链表C ++中结构成员的运算符重载
- github - Automatically run the workflow on the main repo when a submodule repo changes
- node.js - Web 应用程序 - 访问 Windows Server 文件共享 - 是否可行且安全?
- python-3.x - int32 和 float32 的图像有什么区别?
- javascript - 使用 Typescript 解析大 JSON 文件
- amazon-web-services - Amazon 设备 SDK(MQTT 客户端)在未检测到断开连接的情况下断开连接
- google-cast - 如何忽略 Web 接收器中的加载请求?
- python - 使用 Python Azure 函数监视 OneDrive 中的文件创建