Coder Social home page Coder Social logo

material-design-toolbox's Introduction

Material Design Toolbox

Release

This library is still a work in progress.

The main purpose of this library is to provide components and helper methods in implementing Material Design concepts with little to no effort. This library in particular focuses on components that are not yet included in Google's support libraries, with most widgets adhering very closely to the guidelines Google has set. Links to already-existing components will be provided.

This library supports Android 4.1 (API 16) and up, however, not all components/methods will be supported pre-API 21.

To use, add Jitpack as a repository in your top-level build.gradle file:

repositories {
    jcenter()
    maven { url "https://jitpack.io" }
}

Then add one (or all) of the following dependencies, depending on what you want specifically:

dependencies {
    // For general utility methods/classes
    compile 'com.github.nasahapps.Material-Design-Toolbox:base:{latest_version}' 
    // For helper methods pertaining to BottomSheets
    compile 'com.github.nasahapps.Material-Design-Toolbox:bottomsheets:{latest_version}' 
}

Note that all modules include the com.github.nasahapps.Material-Design-Toolbox:base module by default.

Components

This library provides two stepper layouts:

StepperProgressLayout: Displays step progress using plain text (e.g. Step 4 of 6), dots, or with a tinted ProgressBar. The StepperProgressLayout provides "Back" and "Next" buttons for going forwards/backwards between steps, with the "Next" button turning into a "Finish" button on the last step. Also, it is a ViewGroup, so any views you add to it will automatically be placed accordingly. (TODO: add pictures)

Custom attributes:

  • stepperMaxProgress
  • the max number of steps
  • default value: 1
  • stepperProgress
  • the current step
  • default value: 1
  • stepperBackButtonText
  • default value: "Back"
  • stepperNextButtonText
  • default value: "Next"
  • stepperFinishButtonText
  • the text to be displayed on the "Next" button when on the last step
  • default value: "Finish"
  • stepperProgressType
  • the type of progress to be shown, one of TYPE_TEXT, TYPE_DOTS, or TYPE_BAR
  • default value: TYPE_TEXT
  • stepperProgressAccent
  • the accent color to use for the dots/bar progress
  • default value: R.attr.colorPrimary

HorizontalStepperLayout: Displays steps using Stepper views in either a horizontal or vertical fashion. Steppers have one of four states: COMPLETED, ACTIVE, INACTIVE, or ERROR. Custom attributes:

  • stepperLayoutMargin
  • the margin between each Stepper
  • default value: 56dp

Also provided is the Stepper widget that should be the only child view used in a HorizontalStepperLayout. Custom attributes:

  • stepperTitle
  • stepperSubtitle
  • stepperAccent
  • the accent color to be used as the step number background
  • default value: R.attr.colorPrimary
  • stepperState
  • the initial state of the stepper (ACTIVE, INACTIVE, COMPLETED, or ERROR)
  • default value: ACTIVE

The TabLayout widget is part of the design support library.

The TextInputLayout widget is part of the design support library. It is suggested to use a TextInputEditText instead of a regular EditText in this layout.

The Toolbar widget is part of the appcompat-v7 support library.

Tooltips (extends TextView) are similar to Toasts, both in appearance and in function. Creating a Tooltip is very similar to creating a Toast or Snackbar:

Tooltip.makeTooltip(context, "Tooltip text", Tooltip.LENGTH_SHORT, anchorView).show();

The arguments passed in are a Context, string text (or a string resource), a duration of how long you want the Tooltip to appear (LENGTH_SHORT or LENGTH_LONG), and a View to anchor the Tooltip on. By default, the Tooltip will appear below the anchor, unless the anchor is low enough on the screen, then the Tooltip will instead appear above the anchor.

License

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.