使用divider解決RecyclerView內容顯示不全的問題
阿新 • • 發佈:2019-01-08
使用第三方自定義IdeaScrollView包裹一個LinearLayout,LinearLayout中包裹RecyclerView和divider,divider寬度固定取到RecyclerView的內容顯示完整為止 <com.test.view.IdeaScrollView android:id="@+id/ideaScrollView_category_list" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView10"> <LinearLayout android:id="@+id/ll_root02" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView_category_list_content" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"> </android.support.v7.widget.RecyclerView> <View android:id="@+id/divider18" android:layout_width="match_parent" android:layout_height="170dp" android:background="@color/foreground" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/recyclerView_category_list_content" /> </LinearLayout> </com.test.view.IdeaScrollView>
內容顯示不全的根本原因應該就是RecyclerView在計算佈局所使用的高度偏移量時預設沒有計算位於RecyclerView上方的控制元件的高度,所以解決問題的根本方法應該是自定義一個RecyclerView繼承android.support.v7.widget.RecyclerView,重寫onmeasure(),在計算RecyclerView高度時算上上方控制元件所佔高度(過程,程式碼往後補)