LoadingLayout簡介
LoadingLayout是一個應用於Android中的載入資料時不同狀態的類庫(實質是一個自定義控制元件)。
專案地址:github.com/xiong-it/Lo… 歡迎體驗。
Compile
開啟你的app module中的build.gradle,新增依賴:
compile `tech.michaelx.loadinglibrary:loadinglibrary:1.0.2`複製程式碼
Sample
在layout的xml中使用如下:
<?xml version="1.0" encoding="utf-8"?>
<tech.michaelx.loadinglibrary.LoadingLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/loading_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="loadingBackground可以是drawable或者顏色"
android:padding="10dp"
app:emptyView="@layout/empty_layout"
app:errorView="@layout/failure_layout"
app:loadingAnimator="@animator/loading"
app:loadingBackground="#1296db"
app:loadingView="@layout/loading_layout"
app:retryLoadAlways="true"
app:showLoadingDebug="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="本頁面使用屬性自定義loading各種狀態" />
</tech.michaelx.loadinglibrary.LoadingLayout>複製程式碼
常用自定義屬性
app:loadingView="@layout/loading_layout"
:指定載入時的展示佈局,可以為空,為空時使用系統預設ProgressBarapp:loadingAnimator="@animator/loading"
:只用上述屬性制定時,該屬性方可生效,作用於載入佈局的動畫app:loadingBackground="#1296db"
:指定載入過程中頁面背景,可以是顏色或者drawable,預設為adnroid:color/whiteapp:emptyView="@layout/empty_layout"
:指定了資料為空時的展示佈局,可以為空,有預設佈局,詳細可看下方演示gif圖app:errorView="@layout/failure_layout"
:指定載入失敗時的展示佈局,可以為空,有預設佈局,詳細可看下方演示gif圖app:retryLoadAlways="true"
:是否開啟資料為空時點選重試,預設為falseapp:showLoadingDebug="true"
:是否開啟佈局預覽除錯,預設為false,開啟後可以在AS中正常預覽佈局檔案,打包時請一定寫false!
其他更多屬性請看
<resources>
<declare-styleable name="LoadingLayout">
<!--設定資料為空的layout-->
<attr name="emptyView" format="reference" />
<!--設定載入失敗的layout-->
<attr name="errorView" format="reference" />
<!--設定載入中的layout-->
<attr name="loadingView" format="reference" />
<!--設定載入動畫id-->
<attr name="loadingAnimator" format="reference" />
<!--設定載入中的背景,或者顏色-->
<attr name="loadingBackground" format="reference|color" />
<!--設定預設Progressbar的progress_drawable-->
<attr name="loadingProgressDrawable" format="reference" />
<!--設定資料為空時的圖片-->
<attr name="emptyDrawable" format="reference" />
<!--設定資料為空時的提示語-->
<attr name="emptyText" format="string" />
<!--設定載入失敗時的圖片-->
<attr name="errorDrawable" format="reference" />
<!--設定載入失敗時的提示語-->
<attr name="errorText" format="string" />
<!--設定是否總是點選重試,無論資料為空或者失敗,預設false-->
<attr name="retryLoadAlways" format="boolean" />
<!--設定自動顯示載入除錯-->
<attr name="showLoadingDebug" format="boolean" />
</declare-styleable>
</resources>複製程式碼
Activity/Fragment程式碼中
// 初始化佈局物件
mLoadingLayout = (LoadingLayout) findViewById(R.id.loading_layout);
// 載入完畢/載入成功
mLoadingLayout.loadComplete();
// 資料為空
mLoadingLayout.showEmpty();
// 載入失敗
mLoadingLayout.loadFailure();
// 設定點選重試監聽
mLoadingLayout.setOnRetryLoadListener(OnRetryLoadListener);
// 顯示載入中
// 程式碼呼叫了setLoadingView(),才需要手動呼叫showLoading()
mLoadingLayout.showLoading();複製程式碼
效果圖
載入中,載入完成,資料為空,載入失敗,點選重試 幾種狀態演示gif
注意事項
LoadingLayout需要依賴於appcompat-v7
&support-annotations
,請在工程中新增這兩個依賴(版本可自定義,不建議低於25.3.1):
compile "com.android.support:appcompat-v7:25.3.1"
compile `com.android.support:support-annotations:25.3.1`複製程式碼
專案地址
感謝閱讀,歡迎體驗:github.com/xiong-it/Lo…