Skip to content

Commit 46d3522

Browse files
committed
resolved scrolling issue
1 parent 5cc9ec4 commit 46d3522

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

lib/screens/home_page/editor_pane/details_card/response_pane.dart

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ class WebsocketResponseView extends ConsumerStatefulWidget {
159159

160160
class _WebsocketResponseViewState extends ConsumerState<WebsocketResponseView> {
161161
final ScrollController _controller = ScrollController();
162+
bool _isAtTop = true;
163+
List<WebSocketFrameModel> _pausedFrames = [];
162164

163165
@override
164166
void initState() {
@@ -172,17 +174,13 @@ class _WebsocketResponseViewState extends ConsumerState<WebsocketResponseView> {
172174
);
173175
}
174176
});
175-
// _controller.addListener(() {
176-
// if (_controller.position.atEdge && _controller.position.pixels != 0) {
177-
// setState(() {
178-
// _controller.jumpTo(_controller.position.maxScrollExtent);
179-
// });
180-
// }else{
181-
// setState(() {
182-
// _controller.jumpTo(_controller.offset);
183-
// });
184-
// }
185-
// });
177+
_controller.addListener(() {
178+
if (_controller.hasClients) {
179+
setState(() {
180+
_isAtTop = _controller.position.atEdge == true;
181+
});
182+
}
183+
});
186184
}
187185

188186
@override
@@ -197,13 +195,19 @@ class _WebsocketResponseViewState extends ConsumerState<WebsocketResponseView> {
197195
final frames = ref.watch(selectedRequestModelProvider
198196
.select((value) => value?.webSocketResponseModel?.frames)) ??
199197
<WebSocketFrameModel>[];
198+
199+
if (_isAtTop) {
200+
_pausedFrames = List.from(frames);
201+
}
202+
203+
final displayFrames = _isAtTop ? frames : _pausedFrames;
200204
return ListView.builder(
201205
controller: _controller,
202206
//physics: const BouncingScrollPhysics(),
203-
itemCount: frames.length,
207+
itemCount: displayFrames.length,
204208
itemBuilder: (context, index) {
205209
return WebsocketFrame(
206-
websocketFrame: frames[frames.length-index-1],
210+
websocketFrame: displayFrames[displayFrames.length-index-1],
207211
ref: ref,
208212
);
209213
},

0 commit comments

Comments
 (0)