Androidスマートドロップダウン・リフレッシュ・フレームワーク-smartRefreshLayout
15369 ワード
Androidスマートドロップダウン・リフレッシュ・フレームワーク-smartRefreshLayout
English|中国語
名前の通り、SmartRefreshLayoutは「スマート」または「スマート」のドロップダウン・リフレッシュ・レイアウトです.スマートのため、すべてのViewだけでなく、多層ネストされたビュー構造もサポートされています.FrameLayoutやLinearLayoutではなくView Groupから継承され、パフォーマンスが向上します.Google公式のSwipeRefreshLayout、他のサードパーティのUltra-Pull-to-refresh、TwinklingRefreshLayoutなど、現在流行しているさまざまなリフレッシュレイアウトの利点も吸収されています.様々なクールなHeaderとFooterも統合されています.SmartRefreshLayoutの目標は、強力で安定した成熟したドロップダウン・リフレッシュ・フレームワークを構築し、さまざまなクールで多様で実用的で美しいHeaderとFooterを統合することです.
特徴機能:はマルチタッチ をサポートする.は、ネストされた多層のビュー構造Layout(LinearLayout,FrameLayout...) をサポートします.は、すべてのView(AbsListView、RecyclerView、WebView....View) をサポートします.はカスタマイズをサポートし、クールなHeaderとFooterを多く統合しています. はListViewとのシームレスな同期スクロールとCoordinatorLayoutのネストスクロールをサポートする. は自動リフレッシュ、自動プルアップロードをサポートする(手動でプルすることなく、リスト慣性を自動的に底部までスクロールする). はカスタムリバウンドアニメーションの補間器をサポートし、各種のクールなアニメーション効果を実現する. は、どんなシーンにも適したテーマを設定するAppをサポートし、クールで気まずいことはありません. は、平行移動、ストレッチ、バック固定、トップ固定、フルスクリーン の複数のスライド方式をサポートしています.は、スクロール可能なすべてのビューのバウンドバウンド をサポートする.
トランスファゲートプロパティメソッド インテリジェントな点 FAQ 更新ログ ブログ記事 ソースコードダウンロード マルチタッチ カスタムHeader Demo
APK-Demoのダウンロード
プロジェクトプレゼンテーション
個人用ページ
微博リスト
飲食グルメ
パーソナルセンター
スタイルプレゼンテーションStyle
Delivery
Dropbox
Refresh-your-delivery
Dropbox-Refresh
上の2つは私自身が実現したもので、下のはgithub上の他の優秀なHeaderを整理して集合して最適化しました.
BezierRadar
BezierCircle
Pull To Refresh
Pull Down To Refresh
FlyRefresh
Classics
FlyRefresh
ClassicsHeader
Phoenix
Taurus
Yalantis/Phoenix
Yalantis/Taurus
BattleCity
HitBlock
FunGame/BattleCity
FunGame/HitBlock
WaveSwipe
Material
WaveSwipeRefreshLayout
MaterialHeader
StoreHouse
WaterDrop
Ultra-Pull-To-Refresh
WaterDrop
こんなにクールなヘッドをたくさん見て、素晴らしいと思いますか?このとき、こんなに多くのHeaderが統合されているのではないかと心配するかもしれませんが、普段は1つしか使われていません.無駄なコードやリソースをたくさん導入するのではないでしょうか.安心してください.私はもうリフレッシュレイアウトを3つのパッケージに分けました.使うときは自分で引用すればいいです. SmartRefreshLayoutリフレッシュレイアウトコア実装、ClassicsHeader(クラシック)、BezierRadarHeader(ベッセルレーダー)の2つのHeaderを搭載 SmartRefreshHeader各種Headerの集積は、Layoutが持参したHeaderを除いて、このバッグの中にある. SmartRefreshFooterの各種Footerの集積は、Layoutが持参したFooterを除いて、このパッケージの中にある.
単純な使用例
1.buld.gradleに依存を追加
2.XMLレイアウトファイルにSmartRefreshLayoutを追加
3.ActivityまたはFragmentにコードを追加
指定したHeaderとFooterを使用
1.メソッドのグローバル設定
注意:メソッド1で設定されたHeaderとFooterの優先度は最も低く、メソッド2、3が同時に使用されている場合は、他のメソッドに置き換えられます.
2.メソッド2 XMLレイアウトファイル指定
注意:メソッド2 XMLで設定されたHeaderとFooterの優先度は中程度で、メソッド3で上書きされます.また、本方法を使用する場合、Android Studioでプレビュー効果があります.以下の図です.
でも心配しないで、プレビュー効果だけで、実行するときはドロップダウンしか現れません~
3.メソッド3 Javaコード設定
紛らわす
SmartRefreshLayoutは使用されていません:シーケンス化、逆シーケンス化、JNI、反射なので、混同フィルタコードを追加する必要はありません.混同テストに合格しました.プロジェクトの使用中に混同した後に問題が発生した場合は、すぐに知らせてください.
English|中国語
名前の通り、SmartRefreshLayoutは「スマート」または「スマート」のドロップダウン・リフレッシュ・レイアウトです.スマートのため、すべてのViewだけでなく、多層ネストされたビュー構造もサポートされています.FrameLayoutやLinearLayoutではなくView Groupから継承され、パフォーマンスが向上します.Google公式のSwipeRefreshLayout、他のサードパーティのUltra-Pull-to-refresh、TwinklingRefreshLayoutなど、現在流行しているさまざまなリフレッシュレイアウトの利点も吸収されています.様々なクールなHeaderとFooterも統合されています.SmartRefreshLayoutの目標は、強力で安定した成熟したドロップダウン・リフレッシュ・フレームワークを構築し、さまざまなクールで多様で実用的で美しいHeaderとFooterを統合することです.
特徴機能:
トランスファゲート
APK-Demoのダウンロード
プロジェクトプレゼンテーション
個人用ページ
微博リスト
飲食グルメ
パーソナルセンター
スタイルプレゼンテーションStyle
Delivery
Dropbox
Refresh-your-delivery
Dropbox-Refresh
上の2つは私自身が実現したもので、下のはgithub上の他の優秀なHeaderを整理して集合して最適化しました.
BezierRadar
BezierCircle
Pull To Refresh
Pull Down To Refresh
FlyRefresh
Classics
FlyRefresh
ClassicsHeader
Phoenix
Taurus
Yalantis/Phoenix
Yalantis/Taurus
BattleCity
HitBlock
FunGame/BattleCity
FunGame/HitBlock
WaveSwipe
Material
WaveSwipeRefreshLayout
MaterialHeader
StoreHouse
WaterDrop
Ultra-Pull-To-Refresh
WaterDrop
こんなにクールなヘッドをたくさん見て、素晴らしいと思いますか?このとき、こんなに多くのHeaderが統合されているのではないかと心配するかもしれませんが、普段は1つしか使われていません.無駄なコードやリソースをたくさん導入するのではないでしょうか.安心してください.私はもうリフレッシュレイアウトを3つのパッケージに分けました.使うときは自分で引用すればいいです.
単純な使用例
1.buld.gradleに依存を追加
// bug , 1.0.3
compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.4-4'
compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.4-4'// Header,
compile 'com.android.support:appcompat-v7:25.3.1'// ( )
compile 'com.android.support:design:25.3.1'// ( , )
//
compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.3'
compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.3'// Header,
2.XMLレイアウトファイルにSmartRefreshLayoutを追加
xml version="1.0" encoding="utf-8"?>
<com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never"
android:background="#fff" />
com.scwang.smartrefresh.layout.SmartRefreshLayout>
3.ActivityまたはFragmentにコードを追加
RefreshLayout refreshLayout = (RefreshLayout)findViewById(R.id.refreshLayout);
refreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(RefreshLayout refreshlayout) {
refreshlayout.finishRefresh(2000/*,false*/);// false
}
});
refreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {
@Override
public void onLoadmore(RefreshLayout refreshlayout) {
refreshlayout.finishLoadmore(2000/*,false*/);// false
}
});
指定したHeaderとFooterを使用
1.メソッドのグローバル設定
public class App extends Application {
//static
static {
// Header
SmartRefreshLayout.setDefaultRefreshHeaderCreater(new DefaultRefreshHeaderCreater() {
@Override
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
layout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white);//
return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat(" %s"));// Header, Header
}
});
// Footer
SmartRefreshLayout.setDefaultRefreshFooterCreater(new DefaultRefreshFooterCreater() {
@Override
public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
// Footer, BallPulseFooter
return new ClassicsFooter(context).setDrawableSize(20);
}
});
}
}
注意:メソッド1で設定されたHeaderとFooterの優先度は最も低く、メソッド2、3が同時に使用されている場合は、他のメソッドに置き換えられます.
2.メソッド2 XMLレイアウトファイル指定
<com.scwang.smartrefresh.layout.SmartRefreshLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#444444"
app:srlPrimaryColor="#444444"
app:srlAccentColor="@android:color/white"
app:srlEnablePreviewInEditMode="true">
<com.scwang.smartrefresh.layout.header.ClassicsHeader
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/padding_common"
android:background="@android:color/white"
android:text="@string/description_define_in_xml"/>
<com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
com.scwang.smartrefresh.layout.SmartRefreshLayout>
注意:メソッド2 XMLで設定されたHeaderとFooterの優先度は中程度で、メソッド3で上書きされます.また、本方法を使用する場合、Android Studioでプレビュー効果があります.以下の図です.
でも心配しないで、プレビュー効果だけで、実行するときはドロップダウンしか現れません~
3.メソッド3 Javaコード設定
final RefreshLayout refreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
// Header Material
refreshLayout.setRefreshHeader(new MaterialHeader(this).setShowBezierWave(true));
// Footer
refreshLayout.setRefreshFooter(new BallPulseFooter(this).setSpinnerStyle(SpinnerStyle.Scale));
紛らわす
SmartRefreshLayoutは使用されていません:シーケンス化、逆シーケンス化、JNI、反射なので、混同フィルタコードを追加する必要はありません.混同テストに合格しました.プロジェクトの使用中に混同した後に問題が発生した場合は、すぐに知らせてください.