我在视图中有多个小部件,每个小部件需要自己的ActionMode。我发现当用户轻触操作栏之外的区域时,ActionMode不会自动关闭。因此,用户很容易在一个控件上启动一个ActionMode,然后在另一个控件上轻触(在我的情况下是长按),从而在第一个Actionbar的顶部堆叠第二个ActionBar。这会造成编程逻辑混乱。
我可以使用活动级成员变量跟踪当前的ActionMode,如果需要新的ActionMode,则关闭当前的ActionMode。但是,这样会使我的代码难以阅读和维护。而且,我更希望在用户轻触操作栏之外的任何内容时立即将其关闭。
有没有好的建议来处理这个问题?
我可以使用活动级成员变量跟踪当前的ActionMode,如果需要新的ActionMode,则关闭当前的ActionMode。但是,这样会使我的代码难以阅读和维护。而且,我更希望在用户轻触操作栏之外的任何内容时立即将其关闭。
有没有好的建议来处理这个问题?
ActionMode mMode;
,在onCreateActionMode(...)
方法中填充它的当前操作模式,然后当我需要退出当前操作模式时,只需调用mMode.finish()
即可。 - user1049280match_parent
,并处理用户的点击事件。 - user1049280