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.
This repo has been developed from https://github.com/medyo/StateViews.
Different features of original repo:
- Codes converted to Kotlin
- Fixed some memory leaks
- Icons colors can be customized separately
- Added showing state status
<com.umutbey.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!" />
</com.umutbey.stateviews.StateView>
Then Call the appropriate state:
mStatusPage.displayLoadingState();
mStatusPage.displayState("TAG_NAME");
mStatusPage.hideStates();
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
implementation 'com.github.kobeumut:StateViews:0.5'
Function | Description |
---|---|
setState(params) | Create a new state. Params are tag, title, description, icon, spesific icon color, button text, clicklistener |
setIconColor(Int) | Set Icon color for all icons(Same 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 |
Function | Description |
---|---|
displayState(String) | Display a state by his tag name. If you want to send displayState("hide") parameter, state will hide |
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 |
setState(
"TAG_ERROR",
"No Connection",
"Error retrieving information from server.",
AppCompatResources.getDrawable(this, R.drawable.ic_server_error),
Color.Black,
"Retry"
);
mStatusPage.displayState("TAG_ERROR");
setState(
"TAG_NO_RESULTS",
"No Results Found",
"Unfortunately I could not find any results matching your search",
AppCompatResources.getDrawable(this, R.drawable.search), ,null, null
)
mStatusPage.displayState("TAG_NO_RESULTS");
Contributions are welcome!
Nothing to include
Copyright (c) 2018 Mehdi Sakout
Copyright (c) 2018 Mustafa Umut ADALI.
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.