Android 應用從服務端拉取數據並解析展示時,出現佈局錯位、文字重疊、超出屏幕等異常,核心原因通常集中在文字長度未限制與佈局適配缺失兩大類。
| 現象 | 核心原因 | 修復方案 |
|---|---|---|
| 單行文字超出屏幕寬度不換行 | TextView 無 maxLines/ellipsize、父佈局無約束 | 設置 android:maxLines="1" android:ellipsize="end" 或 android:singleLine="true" |
| 多行文字高度不自適應遮擋下方控件 | 父佈局使用 wrap_content 但無權重/約束 | 改用 ConstraintLayout 鏈條/權重,或 LinearLayout + layout_weight |
| 圖片過大撐破佈局 | ImageView 無 scaleType/maxWidth/adjustViewBounds | android:scaleType="centerCrop" android:adjustViewBounds="true" android:maxWidth="300dp" |
| RecyclerView/GridView 項目高度不一致導致跳動 | 未設置 setHasFixedSize(true) 或項目佈局高度不穩定 | 固定項目高度、預估尺寸、或使用 AutoMeasure 機制 |
length(),確認是否含超長無空格字符串(如長 URL、Base64)。TextUtils.ellipsize() 預處理:極端情況下在代碼層截斷再設置文本。android:ellipsize="end" android:maxLines="2"(視業務調整行數)。ConstraintLayout 構建響應式佈局,避免嵌套過深。.override(width, height) 限制內存與佈局尺寸。recyclerView.setHasFixedSize(true)。