State Views for Android (BETA version)
Create & Show progress, data or error views, the easy way!
StateViews is based on ViewSwitcher mechanism and allows to handle the different app states, from loading... to displaying
data and error views, the library is tiny and fully customizable.
<sakout.mehdi.StateViews.StateView
android:id="@+id/status_page"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Hello World!" />
</sakout.mehdi.StateViews.StateView>
Then Call the appropriate state:
mStatusPage.displayLoadingState();
mStatusPage.displayState("TAG_NAME");
mStatusPage.hideStates();
Setup
compile 'com.github.medyo:state-views:0.2'
Usage
1. Available attributes for PageStatus Builder
Function | Description |
---|---|
addState(params) | Create a new state |
setIconColor(Int) | Set Icon color |
setIconSize(Int) | Set Icon Size |
setTextColor(Int) | set Title and description colors |
setFontFace(String) | Set Custom font |
setButtonBackgroundColor(Int) | Set Button Background color |
setButtonTextColor(String) | Set Button Text color |
2. Available attributes for PageStatesView
Function | Description |
---|---|
displayState(String) | Display a state by his tag name |
hideStates() | Hide all states and display data |
displayLoadingState() | Display the loading state |
addCustomState(Intent) | Create a new state only available for the current activity, fragment... |
setOnStateButtonClicked(View.OnClickListener) | Click listener for the state button |
applyGravity(Int) | Set View Gravity |
3. Samples
Display an Error View
addState(
"TAG_ERROR",
"No Connection",
"Error retrieving information from server.",
AppCompatResources.getDrawable(this, R.drawable.ic_server_error),
"Retry"
);
mStatusPage.displayState("TAG_ERROR");
Display a "no Data" View
addState(
"TAG_NO_RESULTS",
"No Results Found",
"Unfortunately I could not find any results matching your search",
AppCompatResources.getDrawable(this, R.drawable.search), null
)
mStatusPage.displayState("TAG_NO_RESULTS");