All Projects → gturedi → Statefullayout

gturedi / Statefullayout

Licence: apache-2.0
Android layout to show template for loading, empty, error etc. states

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Statefullayout

Mkloader
Beautiful and smooth custom loading views
Stars: ✭ 1,377 (+69.37%)
Mutual labels:  custom-view, loader, loading
Ngx Skeleton Loader
Make beautiful, animated loading skeletons that automatically adapt to your Angular apps
Stars: ✭ 278 (-65.81%)
Mutual labels:  loader, loading
ngx-smart-loader
Smart loader handler to manage loaders everywhere in Angular apps.
Stars: ✭ 28 (-96.56%)
Mutual labels:  loader, loading
Whirl
CSS loading animations with minimal effort!
Stars: ✭ 774 (-4.8%)
Mutual labels:  loader, loading
PageStatusTransformer
A low invasive state management on Android
Stars: ✭ 12 (-98.52%)
Mutual labels:  layout, loading
busy-load
A flexible loading-mask jQuery-plugin
Stars: ✭ 76 (-90.65%)
Mutual labels:  loader, loading
Loading Bar
Flexible, light weighted and super fast Progress Bar Library
Stars: ✭ 300 (-63.1%)
Mutual labels:  loader, loading
SSSwiftUISpinnerButton
SSSwiftUISpinnerButton is a collection of various spinning animations for buttons in SwiftUI.
Stars: ✭ 37 (-95.45%)
Mutual labels:  loader, loading
Ssspinnerbutton
Forget about typical stereotypic loading, It's time to change. SSSpinnerButton is an elegant button with a diffrent spinner animations.
Stars: ✭ 357 (-56.09%)
Mutual labels:  loader, loading
Ngx Ui Loader
Multiple Loaders / spinners and Progress bar for Angular 5, 6, 7 and 8+
Stars: ✭ 368 (-54.74%)
Mutual labels:  loader, loading
Uicollectionview Layouts Kit
📐 A set of custom layouts for UICollectionView with examples [Swift 5.3, iOS 12].
Stars: ✭ 410 (-49.57%)
Mutual labels:  layout, custom-view
ngx-loader-indicator
Awesome loader for angular applications. No wrappers only you elements
Stars: ✭ 44 (-94.59%)
Mutual labels:  loader, loading
vue-loading
Loading bar for Vue.js apps using axios
Stars: ✭ 19 (-97.66%)
Mutual labels:  loader, loading
redux-global-loader
A Redux middleware for global loader
Stars: ✭ 13 (-98.4%)
Mutual labels:  loader, loading
SquaresLoadingView
A SquaresLoadingView based on android.View, nicely rotation、easy to use.
Stars: ✭ 26 (-96.8%)
Mutual labels:  custom-view, loading
Rsup Progress
❤️ A simple progress bar with promises support
Stars: ✭ 290 (-64.33%)
Mutual labels:  loader, loading
Front End Daily Challenges
As of October 2020, 170+ works have been accomplished, challenge yourself each day!
Stars: ✭ 598 (-26.45%)
Mutual labels:  layout, loader
Swipelayout
A library what allows you to execute a swipe for the android platform
Stars: ✭ 150 (-81.55%)
Mutual labels:  layout, custom-view
spinners-angular
Lightweight SVG/CSS spinners for Angular
Stars: ✭ 21 (-97.42%)
Mutual labels:  loader, loading
Waitme
jquery plugin for easy creating loading css3/images animations
Stars: ✭ 302 (-62.85%)
Mutual labels:  loader, loading

StatefulLayout

Android Arsenal API MavenCentral Build Status License

Android layout to show most common state templates like loading, empty, error etc. To do that all you need to is wrap the target area(view) with StatefulLayout.

alt text

Usage

You can download it from jitpack.io

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}
dependencies {
     compile 'com.github.gturedi:StatefulLayout:1.2.2'
}

Alternatively you can use Sonatype Repository, add dependecy to app/build.gradle

dependencies {
     compile 'com.github.gturedi:stateful-layout:1.2.1'
}

Snapshots of the development version are available in Sonatype's snapshots repository


Then wrap a view which target area(view) to show states with StatefulLayout
```xml
  <com.gturedi.views.StatefulLayout
        android:id="@+id/stateful"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:stfAnimationEnabled="true"
        app:stfInAnimation="@android:anim/slide_in_left"
        app:stfOutAnimation="@android:anim/slide_out_right"
        >
    
        <!-- your content here  -->
        <LinearLayout
            android:id="@+id/target"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
            ...
        </LinearLayout>

    </com.gturedi.views.StatefulLayout>

Finally in your activity/fragment get StatefulLayout reference and call showXXX methods

StatefulLayout stateful = (StatefulLayout) findViewById(R.id.stateful);
stateful.showLoading();
//stateful.showEmpty(getString(R.string.testMessage));
//stateful.showError(getString(R.string.testMessage), clickListener);
//etc.

API

State methods have overloads for customization. If you pass clickListener parameter as null, relevant state button will be hided. More customization please look CustomStateOptions.java

  • setAnimationEnabled(boolean animationEnabled)
  • setInAnimation(@AnimRes int inAnimation)
  • setOutAnimation(@AnimRes int outAnimation)
  • showContent()
  • showLoading(String message)
  • showEmpty(String message)
  • showError(String message, OnClickListener clickListener)
  • showOffline(String message, OnClickListener clickListener)
  • showLocationOff(String message, OnClickListener clickListener)
  • showCustom(CustomStateOptions options)

Xml Attributes

Name Type Default Description
stfAnimationEnabled boolean true Indicates whether to place the animation on state changes
stfInAnimation anim @android:anim/fade_in Animation started begin of state change
stfOutAnimation anim @android:anim/fade_out Animation started end of state change

Customization

Just override relevant resource in your app to customize state views appearance

License

Copyright 2017 Gökhan Türedi ([email protected])

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].