package com.example.qyh.joe.fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.qyh.joe.R;
import com.example.qyh.joe.adapter.ThreeAdapter;
import com.example.qyh.joe.bean.ThreeDataBean;
import com.example.qyh.joe.presenter.ThreePresenterImpl;
import com.example.qyh.joe.view.ThreeView;
import java.util.ArrayList;
import java.util.List;
/**
* Created by admin on 2016/8/12.
*/
public class ThreeFragment extends Fragment implements ThreeView,View.OnClickListener,SwipeRefreshLayout.OnRefreshListener{
private RecyclerView mRecyclerView;
private SwipeRefreshLayout mSwipeRefreshWidget;
private FloatingActionButton fa_firstlist;
private LinearLayoutManager mLayoutManger;
private ThreePresenterImpl mthreePresenter;
private ArrayList<ThreeDataBean> mData;
private ThreeAdapter mThreeAdapter;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mthreePresenter = new ThreePresenterImpl(this);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.firstlist_fragment, null);
initView(view);
return view;
}
private void initView(View view) {
mRecyclerView = (RecyclerView) view.findViewById(R.id.recycle_view);
mSwipeRefreshWidget = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh_widget);
fa_firstlist = (FloatingActionButton) view.findViewById(R.id.fa_firstlist);
mSwipeRefreshWidget.setColorSchemeResources(R.color.colorPrimary,
R.color.colorPrimaryDark, R.color.colorAccent,
R.color.colorAccent);
mSwipeRefreshWidget.setOnRefreshListener(this);
mRecyclerView.setHasFixedSize(true);
mLayoutManger = new LinearLayoutManager(getActivity());
mRecyclerView.setLayoutManager(mLayoutManger);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mThreeAdapter = new ThreeAdapter(getActivity().getApplicationContext());
mRecyclerView.setAdapter(mThreeAdapter);
fa_firstlist.setOnClickListener(this);
mRecyclerView.addOnScrollListener(OnScrollListener);
onRefresh();
}
public RecyclerView.OnScrollListener OnScrollListener =new RecyclerView.OnScrollListener(){
private int lastVisibleItem;
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
lastVisibleItem = mLayoutManger.findLastVisibleItemPosition();
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE
&& lastVisibleItem + 1 == mThreeAdapter.getItemCount() ) {
//加载更多
Snackbar.make(getActivity().findViewById(R.id.drawer_layout), "一次只加载20条,查看更多内容请刷新哦", Snackbar.LENGTH_SHORT).show();
}
}
};
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fa_firstlist:
mRecyclerView.scrollToPosition(0);
break;
}
}
@Override
public void showImage(List<ThreeDataBean> list) {
if(mData==null){
mData = new ArrayList<>();
}
mData.addAll(list);
mThreeAdapter.setData(mData);
}
@Override
public void showFailure(Exception e, String s) {
View view = getActivity() == null ? mRecyclerView.getRootView() : getActivity().findViewById(R.id.drawer_layout);
Snackbar.make(view, "数据加载失败!", Snackbar.LENGTH_SHORT).show();
}
@Override
public void showProgress() {
mSwipeRefreshWidget.setRefreshing(true);
}
@Override
public void hideProgress() {
mSwipeRefreshWidget.setRefreshing(false);
}
@Override
public void onRefresh() {
System.out.println("刷新==============");
if(mData!=null){
mData.clear();
}
mthreePresenter.loadImageList();
}
}