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

Android 多行 EditText 垂直置頂對齊與游標定位技巧

     編輯:程式設計綜合問答

預設 EditText 設定 android:gravity="center" 會導致多行文字垂直置中,游標閃爍於輸入區中央,違背直覺。需結合 gravity、inputType 正確設定以實現「左上對齊、游標從首行首字開始」。

正確 XML 屬性組合


<EditText
    android:id="@+id/multiLineEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="120dp"
    android:gravity="top|start"
    android:inputType="textMultiLine"
    android:lines="5"
    android:scrollHorizontally="false"
    android:padding="12dp"
    android:background="@drawable/edittext_bg" />

關鍵屬性解析

屬性作用關鍵值
gravity文字區塊在元件內的對齊top|start (或 top|left)
inputType啟用多行輸入模式textMultiLine
lines / minLines預設顯示行數 / 最小行數視設計而定
scrollHorizontally禁止水平捲動,強制換行false

程式碼動態設定


EditText et = findViewById(R.id.multiLineEditText);
et.setGravity(Gravity.TOP | Gravity.START);
et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
et.setMinLines(5);
et.setHorizontallyScrolling(false);

常見誤區

  • singleLine="false" 已棄用,請改用 inputType="textMultiLine"。
  • gravity="center" 僅影響文字區塊對齊,不影響游標初始位置;游標位置由 top|start 決定。
  • 若需固定高度,請用 minHeight 而非 layout_height,保留內容超出時可捲動彈性。

掌握屬性組合邏輯,即能輕鬆打造符合使用者直覺的多行輸入體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved