Я адаптировал свой код из документации здесь: TextClassification
Я изменил тип ActionMode на ActionMode.TYPE_FLOATING
вместе с соответствующими ActionMode.Callback2
и onGetContentRect()
ActionMode.TYPE_PRIMARY
ActionMode показывает значок, как и ожидалось. ActionMode.TYPE_FLOATING
ActionMode появляется, но без значков. Я получаю это:

Но я ищу это:

Вот мой код:
mContentView.startActionMode(new ActionMode.Callback2() {
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
for (int i = 0; i < classification.getActions().size(); ++i) {
RemoteAction action = classification.getActions().get(i);
menu.add(Menu.NONE, i, 20, action.getTitle()).setIcon(action.getIcon().loadDrawable(getApplicationContext()));
}
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
try {
classification.getActions().get(item.getItemId()).getActionIntent().send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
@Override
public void onGetContentRect(ActionMode mode, View view, Rect outRect) {
outRect.set((int)selectionRectangle.left, (int)(selectionRectangle.top), (int)(selectionRectangle.right), (int)(selectionRectangle.bottom));
}
}, ActionMode.TYPE_FLOATING);
Есть ли встроенный код для версии значков или необходимо сделать пользовательский вид?
Обновить :
Дальнейшие исследования показывают, что app:actionLayout
игнорируется при попытке использовать файл ресурсов пользовательского меню с файлом макета настраиваемого действия.