package safeluck.drive.evaluation.fragment.shop; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import me.yokeyword.fragmentation.SupportFragment; import me.yokeyword.fragmentation.anim.DefaultNoAnimator; import me.yokeyword.fragmentation.anim.FragmentAnimator; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.adapter.MenuAdapter; import safeluck.drive.evaluation.listener.OnItemClickListener; /** * Created by YoKeyword on 16/2/9. */ public class MenuListFragment extends SupportFragment { private static final String ARG_MENUS = "arg_menus"; private static final String SAVE_STATE_POSITION = "save_state_position"; private RecyclerView mRecy; private MenuAdapter mAdapter; private ArrayList mMenus; private int mCurrentPosition = -1; public static MenuListFragment newInstance(ArrayList menus) { Bundle args = new Bundle(); args.putStringArrayList(ARG_MENUS, menus); MenuListFragment fragment = new MenuListFragment(); fragment.setArguments(args); return fragment; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle args = getArguments(); if (args != null) { mMenus = args.getStringArrayList(ARG_MENUS); } } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_list_menu, container, false); initView(view); return view; } @Override public FragmentAnimator onCreateFragmentAnimator() { return new DefaultNoAnimator(); } private void initView(View view) { mRecy = (RecyclerView) view.findViewById(R.id.recy); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); LinearLayoutManager manager = new LinearLayoutManager(_mActivity); mRecy.setLayoutManager(manager); mAdapter = new MenuAdapter(_mActivity); mRecy.setAdapter(mAdapter); mAdapter.setDatas(mMenus); mAdapter.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position, View view) { showContent(position); } }); if (savedInstanceState != null) { mCurrentPosition = savedInstanceState.getInt(SAVE_STATE_POSITION); mAdapter.setItemChecked(mCurrentPosition); } else { mCurrentPosition = 0; mAdapter.setItemChecked(0); } } private void showContent(int position) { if (position == mCurrentPosition) { return; } mCurrentPosition = position; mAdapter.setItemChecked(position); ContentFragment fragment = ContentFragment.newInstance(mMenus.get(position)); ((ShopFragment) getParentFragment()).switchContentFragment(fragment); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(SAVE_STATE_POSITION, mCurrentPosition); } }