Super Light Stack

Additional

Language
Java
Version
N/A
Created
Jan 24, 2017
Updated
Feb 1, 2017 (Retired)
Owner
Chris (nextdimension)
Contributor
Chris (nextdimension)
1
Activity
Badge
Generate
Download
Source code

superlightstack

It is a lightweight library which helps to create a view stack to replace fragments.

-Provides persistent data between views and device rotations.

-Animated transitions between views.

-View State hierarchy persistence

-Activity callbacks

The library is 100% reflection-free.

Usage

Example

1. Create an XML layout file and specifiy the view class you wish to use.

<com.mypackage.ViewOne xmlns:android="http://schemas.android.com/apk/res/android">

//Add your required layout type here  

</com.mypackage.ViewOne>

3. Create a new instance of transitioner and provide the base view, view container and bundle.

Transitioner transitioner = new Transitioner(context, viewContainer, R.layout.view_one, R.id.ViewOne);
transitioner.setup(bundle);

4. Save and restore the transitioner state when the activity is destroyed.

@Override
    protected void onSaveInstanceState(Bundle bundle) {
        Bundle state = transitioner.saveState(bundle);
        super.onSaveInstanceState(state);
    }

5. Extend from BaseView.

 public class ViewOne extends BaseView 

6. Call goTo() to change views, use an animation type and optional bundle.

transitioner.goTo(layoutResID,viewId,bundle,AnimationHandler);

7. Create a file to store view ids

 <resources>
    <item name="ViewOne" type="id"/>
    <item name="ViewTwo" type="id"/>
    <item name="ViewThree" type="id"/>
</resources>

8. Set the id in the View.

 @Override
    protected void onFinishInflate() {
        this.setId(R.id.ViewOne);
        super.onFinishInflate();
    }

App - build.gradle

 compile 'com.github.nextdimension:superlightstack:0.0.2'

Note

  • This is a work in progess.

Licence

Copyright 2017 Chris M.

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.