Avoid scroll restore flicker on ToolApp back

This commit is contained in:
7015725
2026-05-23 05:16:59 +08:00
parent aa4ef421fe
commit a327ba2657
3 changed files with 28 additions and 7 deletions

View File

@@ -713,7 +713,7 @@ FloatBallAppWM.prototype.saveToolAppCurrentStackScroll = function() {
return false;
};
FloatBallAppWM.prototype.restoreToolAppScrollLater = function(root, entry) {
FloatBallAppWM.prototype.restoreToolAppScrollLater = function(root, entry, hideUntilRestored) {
try {
if (!root) return false;
var y = 0;
@@ -723,14 +723,35 @@ FloatBallAppWM.prototype.restoreToolAppScrollLater = function(root, entry) {
y = Math.floor(y);
if (y <= 0) return false;
var self = this;
var shouldHide = !!hideUntilRestored;
if (shouldHide) {
try { root.setAlpha(0.01); } catch(eHide) {}
}
root.post(new java.lang.Runnable({ run: function() {
try {
var sv = self.findToolAppFirstScrollView ? self.findToolAppFirstScrollView(root) : null;
if (sv) sv.scrollTo(0, y);
} catch(ePost) {}
try {
root.post(new java.lang.Runnable({ run: function() {
try {
var sv2 = self.findToolAppFirstScrollView ? self.findToolAppFirstScrollView(root) : null;
if (sv2) sv2.scrollTo(0, y);
} catch(ePost2) {}
if (shouldHide) {
try { root.setAlpha(1.0); } catch(eShow) {}
}
}}));
} catch(ePostAgain) {
if (shouldHide) {
try { root.setAlpha(1.0); } catch(eShow2) {}
}
}
}}));
return true;
} catch(e) {}
} catch(e) {
try { if (root) root.setAlpha(1.0); } catch(eRestoreAlpha) {}
}
return false;
};
@@ -1607,7 +1628,7 @@ FloatBallAppWM.prototype.setToolAppContent = function(contentView) {
try {
var st = this.state.toolAppNavStack || [];
var top = st.length ? st[st.length - 1] : null;
if (this.restoreToolAppScrollLater) this.restoreToolAppScrollLater(contentView, top);
if (this.restoreToolAppScrollLater) this.restoreToolAppScrollLater(contentView, top, true);
} catch(eRestoreScroll) {}
return true;
} catch (e) {

View File

@@ -70,8 +70,8 @@
"size": 20484
},
"th_15_extra.js": {
"sha256": "8ec00dbb048a139ea1b729e84c72db2f73a0eb8c64ccfd5957952daa631a8642",
"size": 126972
"sha256": "cb5aa3fe84c65dbd35a4ed55d9d17e82c20cd6bedc06e6a258879606b05d02d3",
"size": 127685
},
"th_16_entry.js": {
"sha256": "652aa70214a9419923785e528a067d3828094fde48fc9c8c57cfda1e08206e25",
@@ -80,5 +80,5 @@
},
"keyId": "toolhub-targets-2026-rsa3072",
"schema": 2,
"version": 20260522210920
"version": 20260522211645
}

View File

@@ -1 +1 @@
lCaCnyAoHDFSS7cgmQ4nlX7J8ZsdK8UdBXztNCZgAGye8ITxnxYMzRns4EfRfeIlrWoeO3WKY+DKwhL6YSA7tcWgHEv+RGRaeKP2rkaZrGX9kOSIZgCuyW5FeFSuac3i2MwTxGEpXA228HhGH/thMJmGu7on74yDvnB75tzumwEqzuyfAx5FMM7qMv3xHfy4yF3XOhjQGJHW6Mo7gzRdZvQ804OMlKcHj0J1OOTQByKYvsD03UeXB6L1QocwIyRNgST8VEo8j11qtehVaxzG+zWo9n1cFdIzjIQ/Q4RPEED+Xo+/L6JKdEEy5hjk0DaC5uBsTQEYqhO+h2ApUdKdZ5o0kF+bFHIZYGwA720rj014enSpWrXnLCbyXKxHCnsaOQ8b10w+r8V2dwV2F36N5n1Sng5USj9PYePm5+7hyN6BxoJBSR+YWcKmpCVU8XXMLKjSOiI+z21i10RXLAtYLxGAqyuBPhBhFWE2dzXgWS8H0NgHCKDxylAYSMKs2ryb
DuIlrYwkS+FUzg/KMglQaHa4/8qp0pc6ePA7j0yLk2AO6mCZ1hPqulLSH3XYj9ryEQ15fx3m+agY4Dv2Z/O4/3ehs9j7jA3awK4ZgGGMaY4cuIDMyr13vxi9SZSoxdo3XksK8DL1JwKe0UxgbAbQdFd6LrIHGnc0PL8ntoPGh8u17Yyj3xf/piw8kCiBExz8NDaB83bieS/GNsnTRj9jSGczEaUoqCB9PFPXiFRVJ+PREjhp4O1UeQ3isoDfjRYq/sKdrcKf1g/o2LdHS6lFmSMhcz0xp9WWklKE3XE3sPaIdHHlsZaCNVjb+UJW0crcBWTQbHRvWKbPSpnNTFXm1z26AeU0Z9cMHqjNhdpyaPI8MiKcZF/x28bWN7B2TMUel37K36mZ78j7E+l8uMaIsxPHt4KzM6do6vPhz0iunUxSrJk1fnfq5S4PczmjreVTJ8iRz4GSiGp5pQtg3GOyhqH4kbxbQIAEKK+Hm8hLBLQNULByvL/C7CfhHbJ6Jsfi