問題:EditText 設定兩行 hint 導致初始高度較高,使用者開始輸入時高度不自動縮回單行。
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 顯示的做法。