列表項佈局模式:一張大圖佔滿寬度 → 兩張小圖左右分佈 → 再一張大圖 → 兩張小圖... 循環交替。
getItemViewType(position) 根據位置返回 TYPE_BIG / TYPE_SMALL_PAIR;onCreateViewHolder 加載對應佈局(大圖 ImageView / 小圖 LinearLayout 含兩 ImageView,layout_weight="1" 平均分配寬度)。LinearLayout 依次添加:ImageView match_parentLinearLayout 含兩 ImageView weight=1spanCount 與 layout_flexGrow 實現不等寬自適應,代碼更簡潔。<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="centerCrop" />
width=0dp + weight=1 是「等寬分配剩餘空間」的黃金組合。
override() 限制解碼尺寸,防止 OOM。setViewCacheSize 優化頻繁切換類型的閃動。掌握權重與多類型列表,複雜佈局也能靈活構建。