工具箱(为对接数据接口),解决footeritem高度不一问题和开服表闪退问题

This commit is contained in:
kehaoyuan
2017-05-25 09:54:21 +08:00
parent 6347260522
commit f219b62fcc
24 changed files with 472 additions and 29 deletions

View File

@ -0,0 +1,122 @@
package com.gh.gamecenter;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.LinearLayout;
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
import com.gh.base.BaseActivity;
import com.gh.common.view.VerticalItemDecoration;
import com.gh.gamecenter.adapter.ToolBoxRvAdapter;
import butterknife.BindView;
import butterknife.OnClick;
/**
* Created by khy on 24/05/17.
*/
public class ToolBoxActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener{
@BindView(R.id.toolbox_rv)
RecyclerView mToolboxRv;
@BindView(R.id.reuse_none_data)
LinearLayout mNoneData;
@BindView(R.id.reuse_no_connection)
LinearLayout mNoConnection;
@BindView(R.id.toolbox_refresh)
SwipeRefreshLayout mRefresh;
@BindView(R.id.toolbox_loading)
ProgressBarCircularIndeterminate mLoading;
private LinearLayoutManager mLayoutManager;
private ToolBoxRvAdapter mRvAdapter;
Runnable runnable = new Runnable() {
@Override
public void run() {
mRvAdapter = new ToolBoxRvAdapter(ToolBoxActivity.this, ToolBoxActivity.this);
mToolboxRv.setAdapter(mRvAdapter);
}
};
@Override
protected int getLayoutId() {
return R.layout.activity_toolbox;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init("工具箱");
mRefresh.setColorSchemeResources(R.color.theme);
mRefresh.setOnRefreshListener(this);
mLayoutManager = new LinearLayoutManager(this);
mToolboxRv.setLayoutManager(mLayoutManager);
mRvAdapter = new ToolBoxRvAdapter(this, this);
mToolboxRv.addItemDecoration(new VerticalItemDecoration(this, 8, true));
mToolboxRv.setAdapter(mRvAdapter);
mToolboxRv.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE
&& mLayoutManager.findLastVisibleItemPosition() + 1 == mRvAdapter.getItemCount()) {
if (!mRvAdapter.isOver() && !mRvAdapter.isLoading() && !mRvAdapter.isNetworkError()) {
// mRvAdapter.loadData();
}
}
}
});
}
@OnClick(R.id.reuse_no_connection)
public void onClick() {
mLoading.setVisibility(View.VISIBLE);
mNoConnection.setVisibility(View.GONE);
mLoading.postDelayed(runnable, 1000);
}
@Override
public void loadDone() {
super.loadDone();
mRefresh.setRefreshing(false);
mNoneData.setVisibility(View.GONE);
mNoConnection.setVisibility(View.GONE);
mToolboxRv.setVisibility(View.VISIBLE);
mLoading.setVisibility(View.GONE);
}
@Override
public void loadEmpty() {
super.loadEmpty();
mRefresh.setRefreshing(false);
mNoneData.setVisibility(View.VISIBLE);
mNoConnection.setVisibility(View.GONE);
mToolboxRv.setVisibility(View.GONE);
mLoading.setVisibility(View.GONE);
}
@Override
public void loadError() {
super.loadError();
mRefresh.setRefreshing(false);
mNoneData.setVisibility(View.GONE);
mNoConnection.setVisibility(View.VISIBLE);
mToolboxRv.setVisibility(View.GONE);
mLoading.setVisibility(View.GONE);
}
@Override
public void onRefresh() {
mRefresh.postDelayed(runnable, 1000);
}
}