Skip to content

Commit 08e169b

Browse files
settings: Make page scrollable
1 parent 80f5a85 commit 08e169b

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
@@ -64,6 +64,24 @@ void main() {
6464
hasCheckedState: true, isChecked: expectedIsChecked);
6565
}
6666

67+
group('SettingPage scroll behavior', () {
68+
testWidgets('content is scrollable when taller than a screenful', (tester) async {
69+
tester.view.physicalSize = const Size(200, 200);
70+
tester.view.devicePixelRatio = 1.0;
71+
addTearDown(tester.view.reset);
72+
await prepare(tester);
73+
74+
final lastElementFinder = GlobalSettingsStore.experimentalFeatureFlags.isNotEmpty
75+
? find.text("Experimental features")
76+
: find.text("Mark messages as read on scroll");
77+
check(lastElementFinder).findsNothing();
78+
79+
await tester.scrollUntilVisible(lastElementFinder, 100,
80+
scrollable: find.byType(Scrollable));
81+
check(lastElementFinder).findsOne();
82+
});
83+
});
84+
6785
group('ThemeSetting', () {
6886
void checkThemeSetting(WidgetTester tester, {
6987
required ThemeSetting? expectedThemeSetting,

0 commit comments

Comments
 (0)