外層 ScrollView → ViewPager → Fragment → ListView,手動計算 ListView 高度導致失去**視圖回收機制**,首次加載所有 Item 造成卡頓、OOM 風險。
手動測高 ≠ 解決滑動衝突。ListView 在 ScrollView 中本質不可行(雙向滑動視圖嵌套),Android 5.0+ 提供標準解決方案。
NestedScrollView(支持嵌套滑動):
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<ViewPager ... />
</androidx.core.widget.NestedScrollView>
RecyclerView 替代 ListView:
RecyclerView 原生支持 NestedScrollingChild,配合 NestedScrollView 完美協作。recyclerView.setNestedScrollingEnabled(false) 讓外層承擔滑動,或 true 內外分工(需 CoordinatorLayout 配合)。setNestedScrollingEnabled(true)(API 21+)。android:nestedScrollingEnabled="true":聲明視圖參與嵌套滑動分發。ViewCompat.setNestedScrollingEnabled(view, true):代碼動態設置。RecyclerView **ViewHolder 回收機制**完好,只創建可見項 View,內存穩定。PagingSource/LiveData),首屏秒開。**結論:棄用 ListView+手動測高,遷移到 NestedScrollView + RecyclerView,獲得原生嵌套滑動支持與高效回收。**