片段onOptionsItemSelected

时间:2017-11-08 08:39:01

标签: android android-fragments android-menu fragment-backstack

如何让fragments上的backstack不要触发onOptionsItemSelected()。因为每次我创建新fragment时,如果我在onOptionsItemSelected()中选择一个项目,它始终会触发menu。此fragment也将在整个activity中重复使用,因此"返回true" onOptionsItemSelected()上的fragment不是一个选项,因为创建的backstackpublic class IgnoreRouteMiddleware { private readonly RequestDelegate next; // You can inject a dependency here that gives you access // to your ignored route configuration. public IgnoreRouteMiddleware(RequestDelegate next) { this.next = next; } public async Task Invoke(HttpContext context) { if (context.Request.Path.HasValue && context.Request.Path.Value!="/") { // cant stop anything here. Want to abort to ignore this request } await next.Invoke(context); } } 片段仍然相同。

1 个答案:

答案 0 :(得分:0)

看来onOptionsItemSelected将始终在活动Menu documentation enter image description here中添加的每个新片段中调用,所以为了解决我的问题,我添加了一个验证, < CurrentFragment > this.equals(fragmentManager.findFragmentById(R.id.frame_container),用于验证在activity中显示/附加的片段是否是触发onOptionsItemSelected的片段

希望这会对任何会在片段上产生这种行为的人有所帮助。