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());
     }