如何让fragments
上的backstack
不要触发onOptionsItemSelected()
。因为每次我创建新fragment
时,如果我在onOptionsItemSelected()
中选择一个项目,它始终会触发menu
。此fragment
也将在整个activity
中重复使用,因此"返回true" onOptionsItemSelected()
上的fragment
不是一个选项,因为创建的backstack
与public 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);
}
}
片段仍然相同。
答案 0 :(得分:0)
看来onOptionsItemSelected将始终在活动Menu documentation 中添加的每个新片段中调用,所以为了解决我的问题,我添加了一个验证, < CurrentFragment > this.equals(fragmentManager.findFragmentById(R.id.frame_container),用于验证在activity中显示/附加的片段是否是触发onOptionsItemSelected的片段
希望这会对任何会在片段上产生这种行为的人有所帮助。