All Projects → byvlstr → Fluentappbar

byvlstr / Fluentappbar

Licence: apache-2.0
Fluent App Bar: An Android bottom-sheet-based navigation bar based on Microsoft's Fluent Design System

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Fluentappbar

Fluent-Design
Microsoft's Fluent Design with pure HTML/CSS/JS
Stars: ✭ 36 (-59.09%)
Mutual labels:  microsoft, fluent
Fluent Kit
Swift ORM (queries, models, and relations) for NoSQL and SQL databases
Stars: ✭ 82 (-6.82%)
Mutual labels:  fluent
Forge
A Generic Low-Code Framework Built on a Config-Driven Tree Walker
Stars: ✭ 70 (-20.45%)
Mutual labels:  microsoft
Azure
Azure-related repository
Stars: ✭ 78 (-11.36%)
Mutual labels:  microsoft
Modernflyouts
A modern Fluent Design replacement for the old Metro themed flyouts present in Windows.
Stars: ✭ 1,173 (+1232.95%)
Mutual labels:  fluent
React Native Scroll Bottom Sheet
Cross platform scrollable bottom sheet with virtualisation support, native animations at 60 FPS and fully implemented in JS land 🔥
Stars: ✭ 1,226 (+1293.18%)
Mutual labels:  bottomsheet
Vcredist
Lifecycle management of the Microsoft Visual C++ Redistributables
Stars: ✭ 68 (-22.73%)
Mutual labels:  microsoft
Castle Winbuntu
Homesick Castle for use on WSL.
Stars: ✭ 87 (-1.14%)
Mutual labels:  microsoft
Stickytabbarviewcontroller
Sticky and Collapsible View on top of tab bar
Stars: ✭ 82 (-6.82%)
Mutual labels:  bottomsheet
Blurrycontrols
Small design library for blured controls in XAML and WPF for C#
Stars: ✭ 77 (-12.5%)
Mutual labels:  blur
Architecture Center
Azure Architecture Center
Stars: ✭ 1,207 (+1271.59%)
Mutual labels:  microsoft
Chakracore
ChakraCore is an open source Javascript engine with a C API.
Stars: ✭ 8,600 (+9672.73%)
Mutual labels:  microsoft
Alertjs
Dialog Builder allows you to create fully customisable dialogs and popups in Dynamics 365.
Stars: ✭ 80 (-9.09%)
Mutual labels:  microsoft
Final Form Focus
🏁 Final Form "decorator" that will attempt to apply focus to the first field with an error upon an attempted form submission
Stars: ✭ 71 (-19.32%)
Mutual labels:  blur
Active Directory B2c Javascript Nodejs Webapi
A small Node.js Web API for Azure AD B2C that shows how to protect your web api and accept B2C access tokens using Passport.js.
Stars: ✭ 85 (-3.41%)
Mutual labels:  microsoft
Ai Residency List
List of AI Residency & Research programs, Ph.D Fellowships, Research Internships
Stars: ✭ 69 (-21.59%)
Mutual labels:  microsoft
Blurredimageview
Blurred ImageView for your android designes
Stars: ✭ 75 (-14.77%)
Mutual labels:  blur
Planetpowershell
Planet PowerShell is an aggregator of PowerShell community content. The goal is to provide a convenient RSS feed that contains all of the content generated by community members.
Stars: ✭ 78 (-11.36%)
Mutual labels:  microsoft
Windows
Various batch files for Windows
Stars: ✭ 87 (-1.14%)
Mutual labels:  microsoft
Html
A Virtual DOM based templating-engine for PHP
Stars: ✭ 86 (-2.27%)
Mutual labels:  fluent

Fluent App Bar

Fluent App Bar is an Android "bottom-sheet" enabling a whole new bottom navigation and menu experience

  • Innovative: Fluent App Bar is an innovative UI/UX to manage (Fragment) navigation and visualize menu options.
  • Beautiful UI: An elegant UI with a very smooth UX. A bottom navigation bar and a menu in one UI widget.
  • Inspired by: Microsoft's Fluent Design System.
  • Many thanks to: Dmitry Saviuk who made BlurView, already used for the Blur Dialog

Usage

Add this XML snippet to your layout.

<com.vlstr.fluentappbar.FluentAppBar
        android:id="@+id/fluent_app_bar"
        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        app:fluent_background_colour="@color/colorPrimary"
        app:fluent_foreground_colour="#FFFFFF"

        app:fluent_app_bar_type="FULL_FLUENT"
        app:layout_behavior="android.support.design.widget.BottomSheetBehavior">

</com.vlstr.fluentappbar.FluentAppBar>



And integrate the FluentAppBar this way:

MainActivity.java
---

private void setupFluentAppBar() {
        fluentAppBar = (FluentAppBar) findViewById(R.id.fluent_app_bar);
        fluentAppBar.setNavigationMenu(R.menu.fluent_app_bar_main_menu, this);
        fluentAppBar.setSecondaryMenu(R.menu.fluent_app_bar_secondary_menu, this);
        fluentAppBar.setBlurRadius(10);
}

And to handle the navigation or secondary menu item click:

MainActivity.java
---

@Override
public void onClick(View v) {
    int resId = (int) v.getTag();
    switch (resId){
        //Navigation Menu
        case R.id.nav_all:
            fluentAppBar.collapse();
            break;
        case R.id.nav_album:
            break;
        case R.id.nav_keywords:
            break;

        // Secondary Menu
        case R.id.menu_sync:
            fluentAppBar.collapse();
            break;
        case R.id.menu_assistant:
            break;
        case R.id.menu_shared:
            break;
    }
  }

You will have to provide 2 XML Menu resource files for the navigation menu and the secondary menu.

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:icon="@drawable/ic_all"
        android:id="@+id/nav_all"
        android:title="All" />

    <item
        android:icon="@drawable/ic_album"
        android:id="@+id/nav_album"
        android:title="Albums" />

    <item
        android:icon="@drawable/ic_keywords"
        android:id="@+id/nav_keywords"
        android:title="Keywords" />
</menu>

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:icon="@drawable/ic_sync"
        android:id="@+id/menu_sync"
        android:title="Show Sync Status" />

    <item
        android:icon="@drawable/ic_assistant"
        android:id="@+id/menu_assistant"
        android:title="Photo Assistant" />

    <item
        android:icon="@drawable/ic_shared"
        android:id="@+id/menu_shared"
        android:title="Shared Photos" />
</menu>

Compatibility

This Android library is currently supported by devices with API > 17.

Customisation

Each of the following has got getter/setter methods. Also, the type, background colour and foreground colour can be directly set in the XML layout file.

  • Navigation Menu: provide the icons and title for the navigation menu

  • Secondary menu

  • Type: 3 types are available to you

    • FULL_FLUENT: the fluent blur is always enabled
    • CLICK_FLUENT: the blur is enabled when the FluentAppBar is expanded
    • DISABLE_FLUENT: no blur effect is being used
  • Background colour: specify the FluentAppBar's background colour

    • Used as is for the DISABLE_FLUENT and CLICK_FLUENT types
    • Made transparent according to the provided options for FULL_FLUENT and CLICK_FLUENT (when expanded) => works like a filter colour
  • Foreground colour: specify the text colour and icon tint

  • Ripple style: specify whether you want to use the custom "Fluent Ripple" or keep the default Android ripple

  • Background alpha: Set how strong the alpha should be when making the backgrond colour a transparent filter

  • Blur radius: Range [1-25] - The lower it is, the more you will see the FluentAppBar's background.

Additional customization These 3 customization options are done through overriding the "@dimen" resource name in your own dimens.xml file. Please name the dimensions like follows:

  • Text size
    • Navigation menu ("fluentappbar_navigation_text_size")
    • Secondary menu ("fluentappbar_secondary_menu_text_size")
  • Icon size ("fluentappbar_icon_height")

Additional methods

  • collapse(): collapse the FluentAppBar after a short delay of 500ms (in order to see the ripple)
  • collapseWithoutDelay(): collapse the FluentAppBar without the delay
  • expand()

Gradle

dependencies {
  compile 'com.vlstr:fluentappbar:1.1.0'
}

For Maven:

<dependency> 
  <groupId>com.vlstr</groupId> 
  <artifactId>fluentappbar</artifactId> 
  <version>1.1.0</version> 
  <type>pom</type> 
</dependency>

Examples

Logs

1.1.0

  • "Override" customization for text and icon sizes
  • Add type "Click Fluent"
  • Improve touch interaction with the Fluent App Bar sliding

1.0.0

  • Initial version

Used by/in

Feel free to contact me to have your project and name stated here

Credits

Creator: Valentin Lungenstrass http://www.vlstr.com/ | contact [at] vlstr [dot] com

Follow me on Twitter Follow me on LinkedIn

License

Copyright 2019 Valentin Lungenstrass.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].