Move navigation bar to bottom: fix bottom bar unresponsive after scroling down (#2714)

This commit is contained in:
Carmelo Messina
2026-02-18 17:06:09 +01:00
parent 153a54c07a
commit 6ce74650ec
@@ -89,7 +89,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../toolbar/ToolbarLongPressMenuHandler.java | 8 -
.../bottom/BottomControlsContentDelegate.java | 12 +-
.../bottom/BottomControlsCoordinator.java | 11 +-
.../bottom/BottomControlsMediator.java | 35 ++++-
.../bottom/BottomControlsMediator.java | 33 +++-
.../bottom/BottomControlsProperties.java | 6 +-
.../bottom/BottomControlsViewBinder.java | 2 +
.../bottom/ScrollingBottomViewSceneLayer.java | 19 ++-
@@ -104,7 +104,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../render_widget_host_view_android.cc | 3 +
.../Move-navigation-bar-to-bottom.inc | 17 ++
.../renderer/core/frame/viewport_data.cc | 1 +
91 files changed, 1067 insertions(+), 88 deletions(-)
91 files changed, 1065 insertions(+), 88 deletions(-)
create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
@@ -2844,7 +2844,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mIsBottomControlsVisible = visible;
updateCompositedViewVisibility();
updateAndroidViewVisibility();
@@ -183,6 +190,22 @@ class BottomControlsMediator
@@ -183,6 +190,20 @@ class BottomControlsMediator
mTabObscuringHandler.removeObserver(this);
}
@@ -2859,15 +2859,13 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
+ boolean requestNewFrame,
+ boolean isVisibilityForced) {
+ mModel.set(BottomControlsProperties.TOPCONTROLSMINHEIGHT_OFFSET, topControlsMinHeightOffset);
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
+ mModel.set(BottomControlsProperties.Y_OFFSET, -topOffset);
+ }
+ mModel.set(BottomControlsProperties.Y_OFFSET, -topOffset);
+ }
+
@Override
public void onBottomControlsHeightChanged(
int bottomControlsHeight, int bottomControlsMinHeight) {
@@ -272,11 +295,13 @@ class BottomControlsMediator
@@ -272,11 +293,13 @@ class BottomControlsMediator
&& !mIsInSwipeLayout
&& getBrowserControls().getBottomControlOffset() == 0;
if (visible) {