直接持って行って使いますアプリごとに使うLoadingLayout
6434 ワード
前言
プロジェクトにはいくつかのページがあります.それぞれロード中、ネットなし、データなし、エラーの四つの状況のために、よく使います.まず効果を見ます.
原理は比較的に簡単で、Frame Layoutを継承して、xmlでレンダリングし終わった後、ロード中、ネットなし、データなし、エラーの四つのページを加えて、必要に応じてどの階を制御しますか?プロジェクトGitHub住所:github.com/weavey/Load…興味のある方はご覧ください.ご指摘ください.
使い方
gradle引用:
comple'comp.lai.weavey:loadinglayout:1.3.1'
使用説明
LoadingLayoutはグローバル構成をサポートしています.すべての使用場所に効果があります.Applicationには以下のように配置する必要があります.
もっと素晴らしい文章はWeChat公衆番号「Android経験共有」に注目してください.ここではAndroidの達人の経験、国内外のオープンソースプロジェクト、ソース解析、フレームデザイン、Androidの好文の紹介を長く共有します.QQ交流群:Androidの経験を共有するエリア386067289
WeChat公式アカウント
プロジェクトにはいくつかのページがあります.それぞれロード中、ネットなし、データなし、エラーの四つの状況のために、よく使います.まず効果を見ます.
原理は比較的に簡単で、Frame Layoutを継承して、xmlでレンダリングし終わった後、ロード中、ネットなし、データなし、エラーの四つのページを加えて、必要に応じてどの階を制御しますか?プロジェクトGitHub住所:github.com/weavey/Load…興味のある方はご覧ください.ご指摘ください.
使い方
gradle引用:
comple'comp.lai.weavey:loadinglayout:1.3.1'
使用説明
LoadingLayoutはグローバル構成をサポートしています.すべての使用場所に効果があります.Applicationには以下のように配置する必要があります.
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
LoadingLayout.getConfig()
.setErrorText(" ~ !")
.setEmptyText(" , ")
.setNoNetworkText(" , ···")
.setErrorImage(R.mipmap.define_error)
.setEmptyImage(R.mipmap.define_empty)
.setNoNetworkImage(R.mipmap.define_nonetwork)
.setAllTipTextColor(R.color.gray)
.setAllTipTextSize(14)
.setReloadButtonText(" ")
.setReloadButtonTextSize(14)
.setReloadButtonTextColor(R.color.gray)
.setReloadButtonWidthAndHeight(150,40);
}
}
「ロード中」のページは、それぞれのAppが異なるかもしれないので、LoadingLayoutはカスタムLoadingPageをサポートしています.以下の通りです. LoadingLayout.getConfig()
.setLoadingPageLayout(R.layout.define_loading_page);
また、個別インターフェースの「特別な需要」に対応するために、LoadingLayoutもまた、局所的に各種の属性を設定することをサポートしており、現在のオブジェクトに対してのみ有効になり、全体に影響を与えません.以下のとおりです LoadingLayout loading = (LoadingLayout) findViewById(R.id.loading_layout);
loading.setLoadingPage(R.layout.define_loading_page)
.setEmptyText(" ")
.setErrorText("")
.setNoNetworkText("")
.setErrorImage(R.mipmap.ic_launcher)
.setErrorTextSize(16)
.setReloadButtonText(" "); //
ReloadButtonのためにモニターを設置する:loadingLayout.setOnReloadListener(new LoadingLayout.OnReloadListener() {
@Override
public void onReload(View v) {
}
});
表示するページを設定: loadingLayout.setStatus(LoadingLayout.Loading);//
loadingLayout.setStatus(LoadingLayout.Empty);//
loadingLayout.setStatus(LoadingLayout.Error);//
loadingLayout.setStatus(LoadingLayout.No_Network);//
loadingLayout.setStatus(LoadingLayout.Success);//
最後に、xmlの中で使用します."http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:isFirstVisible="true">
<TextView
android:background="@color/colorPrimary"
android:visibility="visible"
android:gravity="center"
android:textColor="@android:color/white"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="ContentView"/>
com.weavey.loading.lib.LoadingLayout>
注意:(1)isfirstVisible属性はcontent Viewを制御するために使用されます.最初は隠していないと、LoadingLayoutの原理はxmlレンダリングが完了したら、content Viewの上に3層のViewを敷きます.そのため、最初は隠していないと、content Viewのレンダリングが完了したら、呼び出し:loadingLayout.setStatus(LoadingLayout.Loading);
は、インタフェースのシンチレーションの効果をもたらします.データのロードが完了したら必ずloadingLayout.setStatus(LoadingLayout.Success);
を呼び出して、contentViewを表示します.このようにしてもデータが取得されていない場合、ユーザーに乱雑なレイアウトが見られ、個人はやはりデフォルトの隠しcontentViewが好きです.(2)管理を便利にするために、LoadingLayoutは直属の子Viewしかない.ScrllViewのように、直属の2つの子Viewを追加すると異常を投げられる.(3)ASは直接にカスタムViewの特性をプレビュー画面に反映しますので、LoadingLayoutを使用すると、LoadingLayoutに包まれたレイアウトが見えなくなります(デフォルトはgoneです)ので、isfirstVisible属性をtrueに設定して、プレビューレイアウトもできます.もっと素晴らしい文章はWeChat公衆番号「Android経験共有」に注目してください.ここではAndroidの達人の経験、国内外のオープンソースプロジェクト、ソース解析、フレームデザイン、Androidの好文の紹介を長く共有します.QQ交流群:Androidの経験を共有するエリア386067289
WeChat公式アカウント