🏃 BGARefreshLayout-Android 🏃
????? BGARefreshLayout-Android ????????????????????????????????????
?? BGARefreshLayout ? Activity?Fragment?ViewPager ?????? Demo
????-??????????
1.BGARefreshLayout ???????????? android:layout_height="0dp" ? android:layout_weight="1"
<cn.bingoogolapple.refreshlayout.BGARefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_modulename_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- BGARefreshLayout ?????? -->
<AnyView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" /> </cn.bingoogolapple.refreshlayout.BGARefreshLayout>
2.???? Fragment ??? BGARefreshLayout
?? onCreateView ?????? BGARefreshLayout???? onActivityCreated ??????
???????????????:
- ????????????????????????????????????
- ???????????????? logo ?????????????????????????
- ??????????????????????????????????????????
- ?? qq ???????????????????????????????????????????????????
??????????
- ??????????????????????
???????? BGARefreshViewHolder ????????????????????????????????? handleScale(float scale, int moveYDistance) ????? scale ???????????????????????? BGAMoocStyleRefreshViewHolder?BGANormalRefreshViewHolder?BGAStickinessRefreshViewHolder?BGAMeiTuanRefreshViewHolder ??????
???????
- ????????????????????????????????
- ? BGAStickyNavLayout ??? RecyclerView ? AbsListView??????????? item ?????????????????????? item ??
- ?????????????????????????????????????
???
????
1.?? Gradle ??
???? Eclipse?????? Eclipse ???????? Android Studio ?
latestVersion ???????????,?????????? xxxxxxxlatestVersion ?!
dependencies {
compile 'com.android.support:recyclerview-v7:latestVersion'
compile 'com.android.support:appcompat-v7:latestVersion'
compile 'cn.bingoogolapple:bga-refreshlayout:latestVersion@aar'
}
2.???????? BGARefreshLayout
????????????? android:layout_height="0dp" ? android:layout_weight="1"
<cn.bingoogolapple.refreshlayout.BGARefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_modulename_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- ???? -->
<AnyView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" /> </cn.bingoogolapple.refreshlayout.BGARefreshLayout>
3.? Activity ?? Fragment ??? BGARefreshLayout
// ? activity ?? fragment ?? BGARefreshLayoutDelegate ?? public class ModuleNameActivity extends AppCompatActivity implements BGARefreshLayout.BGARefreshLayoutDelegate {
private BGARefreshLayout mRefreshLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_moudlename);
initRefreshLayout();
}
private void initRefreshLayout(BGARefreshLayout refreshLayout) {
mRefreshLayout = (BGARefreshLayout) findViewById(R.id.rl_modulename_refresh);
// ?BGARefreshLayout ????
mRefreshLayout.setDelegate(this);
// ????????????????
??1???????????2?????????????
BGARefreshViewHolder refreshViewHolder = new XXXImplRefreshViewHolder(this, true))
// ????????????????
mRefreshLayout.setRefreshViewHolder(refreshViewHolder);
// ??????????????????????????????? -------------START
// ??????????????????
// mRefreshLayout.setIsShowLoadingMoreView(false);
// ????????????
refreshViewHolder.setLoadingMoreText(loadingMoreText);
// ????????????????? id
refreshViewHolder.setLoadMoreBackgroundColorRes(loadMoreBackgroundColorRes);
// ????????????? drawable ?? id
refreshViewHolder.setLoadMoreBackgroundDrawableRes(loadMoreBackgroundDrawableRes);
// ??????????????? id
refreshViewHolder.setRefreshViewBackgroundColorRes(refreshViewBackgroundColorRes);
// ??????????? drawable ?? id
refreshViewHolder.setRefreshViewBackgroundDrawableRes(refreshViewBackgroundDrawableRes);
// ??????????????????
??1???????????????? ??2???????????
mRefreshLayout.setCustomHeaderView(mBanner, false);
// ???? -------------END
}
@Override
public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
// ?????????
if (mIsNetworkEnabled) {
// ??????????????
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(MainActivity.LOADING_DURATION);
}
catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
// ?????? UI ????????
mRefreshLayout.endRefreshing();
mDatas.addAll(0, DataEngine.loadNewData());
mAdapter.setDatas(mDatas);
}
}
.execute();
}
else {
// ????????????
Toast.makeText(this, "?????", Toast.LENGTH_SHORT).show();
mRefreshLayout.endRefreshing();
}
}
@Override
public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
// ???????????????????????????
if (mIsNetworkEnabled) {
// ???????????????????? true?????????
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(MainActivity.LOADING_DURATION);
}
catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
// ?????? UI ????????
mRefreshLayout.endLoadingMore();
mAdapter.addDatas(DataEngine.loadMoreData());
}
}
.execute();
return true;
}
else {
// ???????? false??????????
Toast.makeText(this, "?????", Toast.LENGTH_SHORT).show();
return false;
}
}
// ??????????????????????????? activity ? onStart ??????????????????????
public void beginRefreshing() {
mRefreshLayout.beginRefreshing();
}
// ????????????????
public void beginLoadingMore() {
mRefreshLayout.beginLoadingMore();
}
}
Wiki ?? Demo
?????????😄
Demo ????????????????? Star - Splash ??????+??????
- ? AdapterView ? RecyclerView ???? Adapter ? ViewHolder?RecyclerView ?? DataBinding ??? Item ????? Header ? Footer
- ???????????????????????
???
???? | ???? | ?? | BGA?????QQ? |
---|---|---|---|
bingoogolapple | bingoogolapple.cn | [email protected] |
????
???? BGA ????????????????????????? Lantern???????????YFQ9Q3B?????????????????????
License
Copyright 2015 bingoogolapple 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.