package cn.daixiaodong.myapp.fragment; import android.os.Bundle; import android.support.annotation.Nullable; 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.avos.avoscloud.AVException; import com.avos.avoscloud.AVObject; import com.avos.avoscloud.AVRelation; import com.avos.avoscloud.AVUser; import com.avos.avoscloud.FindCallback; import java.util.ArrayList; import java.util.List; import cn.daixiaodong.myapp.R; import cn.daixiaodong.myapp.adapter.UserFollowListAdapter; import cn.daixiaodong.myapp.fragment.common.BaseFragment; import static android.support.v7.widget.RecyclerView.OnScrollListener; /** * 用户关注的其他用户 */ public class UserFollowFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener { private View mRootView; private SwipeRefreshLayout mRefreshLayout; private RecyclerView mRecyclerView; private UserFollowListAdapter mAdapter; private List<AVObject> mData; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mRootView = inflater.inflate(R.layout.fragment_follow, container, false); return mRootView; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initViews(); } private void initViews() { mRefreshLayout = (SwipeRefreshLayout) mRootView.findViewById(R.id.id_srl_refresh_data); mRecyclerView = (RecyclerView) mRootView.findViewById(R.id.id_rv_collect_recycler_view); setUpRecyclerView(); setRefreshLayout(); mRefreshLayout.post(new Runnable() { @Override public void run() { mRefreshLayout.setRefreshing(true); loadData(true); } }); } private void setRefreshLayout() { mRefreshLayout.setOnRefreshListener(this); } private void setUpRecyclerView() { LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(linearLayoutManager); mRecyclerView.setItemAnimator(new DefaultItemAnimator()); mData = new ArrayList<>(); mAdapter = new UserFollowListAdapter(getActivity(), mData); mRecyclerView.setAdapter(mAdapter); mRecyclerView.addOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); } }); } @Override public void onRefresh() { loadData(true); } private void loadData(boolean isRefresh) { if (isRefresh) { AVUser user = AVUser.getCurrentUser(); AVRelation<AVObject> relation = user.getRelation("follow"); relation.getQuery().findInBackground(new FindCallback<AVObject>() { @Override public void done(List<AVObject> list, AVException e) { mRefreshLayout.setRefreshing(false); if (e == null) { if (list.isEmpty()) { } else { mData.addAll(list); mAdapter.notifyDataSetChanged(); } } else { e.printStackTrace(); } } }); } } }