package me.qixingchen.mdbilibili.ui.fragment; import android.os.Bundle; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import me.qixingchen.mdbilibili.R; import me.qixingchen.mdbilibili.model.List; import me.qixingchen.mdbilibili.network.ListApi; import me.qixingchen.mdbilibili.ui.adapter.CardAdapter; import me.qixingchen.mdbilibili.ui.base.BaseFragment; import me.qixingchen.mdbilibili.utils.Log; import me.qixingchen.mdbilibili.widget.AutoGridfitLayoutManager; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; /** * A simple {@link Fragment} subclass. */ public class MainFragment extends BaseFragment { private static final String TAG = "MainFragment"; private static final String PID = "PID"; private static final String LOCATION = "LOCATION"; private RecyclerView mRecyclerView; private String pid; private String location; public MainFragment() { // Required empty public constructor } /** * @param pid 本页要显示的分区id * @param position 本页的位置号 */ public static MainFragment newInstance(String pid, String position) { MainFragment fragment = new MainFragment(); Bundle args = new Bundle(); args.putString(PID, pid); args.putString(LOCATION, position); fragment.setArguments(args); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_main, container, false); } @Override protected void bindView(View view) { mRecyclerView = (RecyclerView) view.findViewById(R.id.dast_recycler_view); } @Override protected void initData() { ListApi.getList(Integer.valueOf(pid)) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<List>() { @Override public void call(List list) { CardAdapter mCardAdapter = new CardAdapter(list, mActivity); mRecyclerView.setAdapter(mCardAdapter); mRecyclerView.setLayoutManager(new AutoGridfitLayoutManager(mActivity, 150)); Log.i(TAG, "setAdapter" + location); } } , new Action1<Throwable>() { @Override public void call(Throwable throwable) { throwable.printStackTrace(); Snackbar.make(view, throwable.getMessage(), Snackbar.LENGTH_LONG).show(); } }); } @Override protected void bindEvent() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { pid = getArguments().getString(PID); location = getArguments().getString(LOCATION); } } }