Resolve CarUiRecyclerView scroll position offset issue
Fixes: 144948633
Test: Manual
Change-Id: Ia96c9ce9cf3c6ee650c9cb650e606954f1ea803e
diff --git a/car-ui-lib/src/com/android/car/ui/preference/PreferenceFragment.java b/car-ui-lib/src/com/android/car/ui/preference/PreferenceFragment.java
index d1525ce..5582ffc 100644
--- a/car-ui-lib/src/com/android/car/ui/preference/PreferenceFragment.java
+++ b/car-ui-lib/src/com/android/car/ui/preference/PreferenceFragment.java
@@ -54,9 +54,17 @@
}
recyclerView.setPadding(0, toolbar.getHeight(), 0, 0);
- toolbar.registerToolbarHeightChangeListener(height -> {
- recyclerView.setPadding(0, height, 0, 0);
+ toolbar.registerToolbarHeightChangeListener(newHeight -> {
+ if (recyclerView.getPaddingTop() == newHeight) {
+ return;
+ }
+
+ int oldHeight = recyclerView.getPaddingTop();
+ recyclerView.setPadding(0, newHeight, 0, 0);
+ recyclerView.scrollBy(0, oldHeight - newHeight);
});
+
+ recyclerView.setClipToPadding(false);
toolbar.setTitle(getPreferenceScreen().getTitle());
}