140 lines
4.4 KiB
Java
140 lines
4.4 KiB
Java
package com.gh.gamecenter.message;
|
|
|
|
import android.os.Bundle;
|
|
import android.support.annotation.Nullable;
|
|
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 android.widget.TextView;
|
|
|
|
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
|
|
import com.gh.base.fragment.BaseFragment;
|
|
import com.gh.common.view.VerticalItemDecoration;
|
|
import com.gh.gamecenter.R;
|
|
import com.gh.gamecenter.eventbus.EBUISwitch;
|
|
|
|
import org.greenrobot.eventbus.Subscribe;
|
|
import org.greenrobot.eventbus.ThreadMode;
|
|
|
|
import butterknife.BindView;
|
|
import butterknife.OnClick;
|
|
|
|
/**
|
|
* Created by khy on 2017/4/5.
|
|
* 消息-客服
|
|
*/
|
|
public class KeFuFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
|
|
|
|
@BindView(R.id.recyclerview)
|
|
RecyclerView mRecyclerview;
|
|
@BindView(R.id.refresh)
|
|
SwipeRefreshLayout mRefresh;
|
|
@BindView(R.id.loading_pb)
|
|
ProgressBarCircularIndeterminate mLoadingPb;
|
|
@BindView(R.id.reuse_no_connection)
|
|
LinearLayout mNoConnection;
|
|
@BindView(R.id.reuse_none_data)
|
|
LinearLayout mNoneData;
|
|
@BindView(R.id.reuse_tv_none_data)
|
|
TextView mNoneDataTv;
|
|
|
|
private LinearLayoutManager layoutManager;
|
|
|
|
private KeFuFragmentAdapter mAdapter;
|
|
|
|
Runnable runnable = new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
mAdapter = new KeFuFragmentAdapter(getContext(), KeFuFragment.this);
|
|
mRecyclerview.setAdapter(mAdapter);
|
|
mAdapter.loadData(0);
|
|
}
|
|
};
|
|
|
|
@Override
|
|
protected int getLayoutId() {
|
|
return R.layout.fragment_comment_list;
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
mNoneDataTv.setText(R.string.message_kefu_empty_hint);
|
|
|
|
mRefresh.setColorSchemeResources(R.color.theme);
|
|
mRefresh.setOnRefreshListener(this);
|
|
|
|
mAdapter = new KeFuFragmentAdapter(getContext(), this);
|
|
layoutManager = new LinearLayoutManager(getContext());
|
|
mRecyclerview.setLayoutManager(layoutManager);
|
|
mRecyclerview.addItemDecoration(new VerticalItemDecoration(getContext(), 8, true));
|
|
mRecyclerview.setAdapter(mAdapter);
|
|
|
|
mRecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
|
@Override
|
|
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
|
super.onScrollStateChanged(recyclerView, newState);
|
|
if (newState == RecyclerView.SCROLL_STATE_IDLE && mAdapter.isLoaded() && !mAdapter.isRemove()
|
|
&& mAdapter.getItemCount() == layoutManager.findLastVisibleItemPosition() + 1) {
|
|
mAdapter.loadData(mAdapter.getItemCount() - 1);
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
@Override
|
|
public void loadDone() {
|
|
super.loadDone();
|
|
mRefresh.setRefreshing(false);
|
|
mLoadingPb.setVisibility(View.GONE);
|
|
mRecyclerview.setVisibility(View.VISIBLE);
|
|
mNoneData.setVisibility(View.GONE);
|
|
}
|
|
|
|
@Override
|
|
public void loadError() {
|
|
super.loadError();
|
|
mRefresh.setRefreshing(false);
|
|
mNoConnection.setVisibility(View.VISIBLE);
|
|
mRecyclerview.setVisibility(View.GONE);
|
|
mNoneData.setVisibility(View.GONE);
|
|
mLoadingPb.setVisibility(View.GONE);
|
|
}
|
|
|
|
@Override
|
|
public void loadEmpty() {
|
|
super.loadEmpty();
|
|
mRefresh.setRefreshing(false);
|
|
mNoneData.setVisibility(View.VISIBLE);
|
|
mNoConnection.setVisibility(View.GONE);
|
|
mLoadingPb.setVisibility(View.GONE);
|
|
}
|
|
|
|
@OnClick(R.id.reuse_no_connection)
|
|
public void reconnection() { // 重新连接
|
|
mRecyclerview.setVisibility(View.VISIBLE);
|
|
mLoadingPb.setVisibility(View.VISIBLE);
|
|
mNoConnection.setVisibility(View.GONE);
|
|
postDelayedRunnable(runnable, 1000);
|
|
}
|
|
|
|
// Fragment界面切换事件
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
public void onEventMainThread(EBUISwitch swith) {
|
|
if (MessageCenterFragment.EB_MESSAGEFRAGMENT_TAG.equals(swith.getFrom()) && swith.getPosition() == 1) {
|
|
if (mLoadingPb.getVisibility() == View.VISIBLE) {
|
|
mAdapter.loadData(0);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onRefresh() {
|
|
postDelayedRunnable(runnable, 1000);
|
|
}
|
|
}
|