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

Android EditText 輸入時恢復被 Hint 撐大的高度

     編輯:程式設計疑難解答

問題:EditText 設定兩行 hint 導致初始高度較高,使用者開始輸入時高度不自動縮回單行。

解決方案:重設 LayoutParams 觸發重新測量

editText.setLayoutParams(new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.MATCH_PARENT,
    LinearLayout.LayoutParams.WRAP_CONTENT));

原理

  • WRAP_CONTENT 會根據當前文字內容(而非 hint)重新計算高度。
  • 呼叫 setLayoutParams 強制 View 經歷 onMeasure → onLayout 流程。

適用時機

  • 在 TextWatcher.onTextChanged 首次輸入字元時執行一次。
  • 或自訂 EditText 覆寫 onTextChanged 內部處理。

替代方案

// XML 中設定
android:minLines="1"
android:maxLines="1"
// 但會限制 hint 顯示不全,需權衡

動態調整 LayoutParams 是最通用且不影響 hint 顯示的做法。

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