Как реализовать Multiline EditText с кнопкой ActionDone (без кнопки Enter)

У меня есть EditText, который используется для ввода содержимого сообщений (электронные письма, смс). Я хочу, чтобы сообщение было немедленно опубликовано при нажатии кнопки ActionDone. Я использую следующий код для этого:

message.setOnEditorActionListener((textView, i, keyEvent) -> {
            switch (i) {
                case EditorInfo.IME_ACTION_DONE:
                    if (messageCanBePosted()) {
                        SoftKeyboard.hide(message);
                        postMessage();
                        return true;
                    } else {
                        return false;
                    }
                default:
                    return false;
            }
        }); 

Но я также хочу, чтобы это поле сообщений было многострочным, как и в любых других приложениях для обмена сообщениями. Я могу добиться этого с помощью этой строки:

android:inputType="textMultiLine"

Проблема в том, что после добавления этой строки кнопка ActionDone начинает действовать как кнопка Enter. Так что мой обратный звонок для ловлиEditorInfo.IME_ACTION_DONE никогда не называется. Таким образом, каждый раз, когда пользователь нажимает эту кнопку, курсор перемещается на новую строку вместо публикации сообщения.

Как сохранить как многострочное поведение EditText (возможность показывать текст на нескольких строках), так и кнопку ActionDone?

Ответы на вопрос(3)

Ваш ответ на вопрос