Android 实现可用于文本选择的浮动工具栏
要实现可用于文本选择的浮动工具栏,请在您的现有应用中做出以下更改:
- 在 View 对象或 Activity 对象中,将 ActionMode 调用从 startActionMode(Callback) 更改为 startActionMode(Callback, ActionMode.TYPE_FLOATING)。
- 改为使用 ActionMode.Callback 的现有实现扩展 ActionMode.Callback2。
- 替代 onGetContentRect() 方法,用于提供 Rect 内容对象(如文本选择矩形)在视图中的坐标。
- 如果矩形的定位不再有效,并且这是唯一需要声明为无效的元素,请调用 invalidateContentRect() 方法。
请注意,如果您使用 Android 支持库 22.2 修订版,浮动工具栏不向后兼容,默认情况下 appcompat 会获得对 ActionMode 对象的控制权。这会禁止显示浮动工具栏。要在 ActionMode 中启用 AppCompatActivity 支持,请调用 getDelegate(),然后对返回的 setHandleNativeActionModesEnabled() 对象调用 AppCompatDelegate,并将输入参数设置为 false。此调用会将 ActionMode 对象的控制权交还给框架。在运行 Android 6.0(API 级别 23)的设备上,框架可以支持 ActionBar 模式或浮动工具栏模式;而在运行 Android 5.1(API 级别 22)或之前版本的设备上,框架仅支持 ActionBar 模式。