水平 LinearLayout 中包含 EditText 與 Spinner,需 Spinner 寬度適應最長項目文字,EditText 佔剩餘空間。
EditText:layout_width="0dp" + layout_weight="1" → 佔據剩餘空間。Spinner:layout_width="wrap_content" → 根據內容/下拉項目最寬文字自適應。若最長項目過長導致 Spinner 過寬,可包裝在限寬容器中:
wrap_content 基於當前 Adapter 項目測量,若後續 adapter.add() 新增更長項目,需呼叫 spinner.requestLayout() 重新測量。Spinner 本體寬度由 wrap_content 決定,下拉彈出寬度由系統根據項目文字自動計算,兩者互不影響。
掌握 0dp + weight=1 (彈性佔滿) + wrap_content (內容自適應) 的黃金組合,是 LinearLayout 佈局的核心技能。