我有用于输入消息(电子邮件、短信)内容的 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 按钮?