Skip to content

Commit 4685d90

Browse files
author
MritunjayTiwari14
committed
settings: Add scroll for settings page
This commit replaced Column with ListView Widget to enable scrolling effect.
1 parent cc2b97e commit 4685d90

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

lib/widgets/settings.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class SettingsPage extends StatelessWidget {
2020
return Scaffold(
2121
appBar: ZulipAppBar(
2222
title: Text(zulipLocalizations.settingsPageTitle)),
23-
body: Column(children: [
23+
body: ListView(children: [
2424
const _ThemeSetting(),
2525
const _BrowserPreferenceSetting(),
2626
const _VisitFirstUnreadSetting(),

test/widgets/settings_test.dart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,24 @@ void main() {
160160
}, variant: TargetPlatformVariant({TargetPlatform.android, TargetPlatform.iOS}));
161161
});
162162

163+
group('SettingPageScrollBehavior', () {
164+
testWidgets('scroll settings list when screen size is small', (tester) async {
165+
tester.view.physicalSize = const Size(200, 200);
166+
tester.view.devicePixelRatio = 1.0;
167+
addTearDown(tester.view.reset);
168+
await prepare(tester);
169+
170+
final lastElementFinder = GlobalSettingsStore.experimentalFeatureFlags.isNotEmpty
171+
? find.text("Experimental features")
172+
: find.text("Mark messages as read on scroll");
173+
check(lastElementFinder.evaluate().isEmpty).equals(true);
174+
175+
await tester.scrollUntilVisible(lastElementFinder, 100,
176+
scrollable: find.byType(Scrollable));
177+
check(lastElementFinder.evaluate().isEmpty).equals(false);
178+
});
179+
});
180+
163181
group('VisitFirstUnreadSetting', () {
164182
String settingTitle(VisitFirstUnreadSetting setting) => switch (setting) {
165183
VisitFirstUnreadSetting.always => 'First unread message',

0 commit comments

Comments
 (0)