Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Navigation Panel rework #3

Closed
6 tasks done
bdlukaa opened this issue Mar 22, 2021 · 5 comments · Fixed by #31
Closed
6 tasks done

Navigation Panel rework #3

bdlukaa opened this issue Mar 22, 2021 · 5 comments · Fixed by #31
Assignees
Milestone

Comments

@bdlukaa
Copy link
Owner

bdlukaa commented Mar 22, 2021

The current implementation for Navigation Panel lacks so much funcionalities, flexibility and fidelity.

  • Top navigation
    We currently only have left navigation. On top navigation, the default page transition should be horizontal instead of vertical
  • Minimal display mode
    This would also require to do some changes to the Scaffold widget
  • Automatic display mode
    The current implementation for automatic display mode can be broken easily and it's not flexible.
  • Selected indicators
    We currently only have one selected indicator: sliding horizontally. We must add more
  • Pane footer
    Currently only one tile can be added in the footer. In the official docs, there can be multiple tiles
  • Back button
    This also would required some changes to the Scaffold widget, as well as removing Window's top bar and implement a custom one.

Learn more:

@bdlukaa bdlukaa added the help wanted Extra attention is needed label Mar 22, 2021
@bdlukaa
Copy link
Owner Author

bdlukaa commented Apr 7, 2021

This rework will be done once windows gets stable. The window's top bar needs to be customized, and depending on third party projects, such as bitsdojo_window, is not a viable option, because fluent_ui is supopsed to run on other platforms too.

Learn more:

@bdlukaa bdlukaa added the blocked Issue blocked by another issue or pull-request label May 3, 2021
@bdlukaa bdlukaa self-assigned this May 3, 2021
@bdlukaa
Copy link
Owner Author

bdlukaa commented May 7, 2021

Started working on this at https://github.com/bdlukaa/fluent_ui/tree/navigation

@bdlukaa bdlukaa removed the blocked Issue blocked by another issue or pull-request label May 7, 2021
@bdlukaa
Copy link
Owner Author

bdlukaa commented May 12, 2021

So here's my progress on the navigation branch:

I made the whole navigation implementation again from scratch. I removed the Scaffold widget and implemented ScaffoldPage. Implemented NavigationView, that has:

  • Open, Compact and Top Navigation. Minimal pane is still missing.
  • App Top Bar, with back button and option to implement window close buttons
  • Automatic Display Mode working

Here's what's missing:

  • Implement Scrollbar on Open and Compact modes.
  • Add the More pane button on the Top display mode.
  • Open Minimal pane when the button is tapped.
  • Change between Open and Compact mode when the button is tapped
  • Selected indicators

@bdlukaa bdlukaa removed the help wanted Extra attention is needed label May 13, 2021
@bdlukaa
Copy link
Owner Author

bdlukaa commented May 13, 2021

More progress on it:

  • Implemented a scrollbar on open, compact and minimal display mode
  • Open the minimal pane when the button is tapped
  • Change between open and compact mode when the button is tapped

@bdlukaa bdlukaa added this to the Version 2.0.0 milestone May 14, 2021
@bdlukaa
Copy link
Owner Author

bdlukaa commented May 17, 2021

More issues found:

  • The scrollbar is throwing an error:
The following assertion was thrown during a scheduler callback:
The provided ScrollController is currently attached to more than one ScrollPosition.

The Scrollbar requires a single ScrollPosition in order to be painted.

When Scrollbar.isAlwaysShown is true, the associated Scrollable widgets must have unique ScrollControllers. The PrimaryScrollController is used by default for ScrollViews with an Axis.vertical ScrollDirection, unless the ScrollView has been provided its own ScrollController. More than one Scrollable may have tried to use the PrimaryScrollController of the current context.

When the exception was thrown, this was the stack
#0      RawScrollbarState._maybeTriggerScrollbar.<anonymous closure>.<anonymous closure>
package:flutter/…/widgets/scrollbar.dart:990
#1      RawScrollbarState._maybeTriggerScrollbar.<anonymous closure>
package:flutter/…/widgets/scrollbar.dart:1014
  • If the navigation view does not have a top bar, the navigation selected indicator is rendered incorrectly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant