首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android EditText 多行顯示但禁止換行:攔截編輯器動作僅在 Shift+Enter 時換行

     編輯:程式設計綜合問答

實作 TextView.OnEditorActionListener,在 onEditorAction 中判斷 event.isShiftPressed() 決定是否換行或執行發送動作,模擬簡訊應用行為。

程式碼

editText.setOnEditorActionListener((v, actionId, event) -> {
    if (event != null && event.getAction() == KeyEvent.ACTION_DOWN) {
        if (!event.isShiftPressed()) {
            // 未按 Shift + Enter:執行發送或完成動作
            sendMessage();
            return true; // 消費事件,不換行
        }
        // 按 Shift + Enter:允許換行(預設行為)
        return false;
    }
    return false;
});

XML 設定

<EditText
    android:inputType="textMultiLine"
    android:imeOptions="actionSend"
    android:maxLines="4"
    ... />

說明

  • inputType="textMultiLine" 允許顯示多行。
  • imeOptions="actionSend" 讓鍵盤顯示「發送」鍵。
  • 攔截 Enter 鍵,僅 Shift+Enter 產生換行符。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved