From a5c34b2ce811ee65e2b4fb729f6e31a1d3bd4390 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期五, 11 九月 2020 12:40:21 +0800
Subject: [PATCH] 规则设置 ui框架

---
 app/src/main/java/safeluck/drive/evaluation/adapter/MenuAdapter.java               |  107 +++++++
 app/src/main/res/values/strings.xml                                                |   22 +
 app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java     |    5 
 app/src/main/res/layout/item_menu.xml                                              |   30 ++
 app/src/main/java/safeluck/drive/evaluation/bean/SysExamSettingLargeMenu.kt        |   35 ++
 app/src/main/java/safeluck/drive/evaluation/fragment/shop/ShopFragment.java        |   95 ++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java   |   80 +++++
 app/src/main/res/layout/item_pager.xml                                             |   24 +
 app/src/main/java/safeluck/drive/evaluation/fragment/LargeItemSettingFragment.java |   87 +++++
 app/src/main/java/safeluck/drive/evaluation/fragment/shop/MenuListFragment.java    |  117 +++++++
 app/src/main/res/layout/fragment_pager.xml                                         |   11 
 app/src/main/res/layout/fragment_shop.xml                                          |   27 +
 app/src/main/java/safeluck/drive/evaluation/adapter/SysSettingPagerAdapter.java    |   79 +++++
 app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java     |   84 +++++
 app/src/main/res/layout/fragment_largeitem_setting.xml                             |   34 ++
 app/src/main/res/layout/fragment_content.xml                                       |   29 +
 app/src/main/java/safeluck/drive/evaluation/listener/OnItemClickListener.java      |    7 
 app/src/main/res/layout/fragment_list_menu.xml                                     |    6 
 18 files changed, 877 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/adapter/MenuAdapter.java b/app/src/main/java/safeluck/drive/evaluation/adapter/MenuAdapter.java
new file mode 100644
index 0000000..2ea0f9f
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/adapter/MenuAdapter.java
@@ -0,0 +1,107 @@
+package safeluck.drive.evaluation.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.util.SparseBooleanArray;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import safeluck.drive.evaluation.R;
+import safeluck.drive.evaluation.listener.OnItemClickListener;
+
+
+/**
+ * Created by YoKeyword on 16/2/10.
+ */
+public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.MyViewHolder> {
+    private LayoutInflater mInflater;
+    private Context mContext;
+    private List<String> mItems = new ArrayList<>();
+
+    private SparseBooleanArray mBooleanArray;
+
+    private OnItemClickListener mClickListener;
+
+    private int mLastCheckedPosition = -1;
+
+    public MenuAdapter(Context context) {
+        mInflater = LayoutInflater.from(context);
+        mContext = context;
+    }
+
+    public void setDatas(List<String> items) {
+        mItems.clear();
+        mItems.addAll(items);
+
+        mBooleanArray = new SparseBooleanArray(mItems.size());
+    }
+
+    @Override
+    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View view = mInflater.inflate(R.layout.item_menu, parent, false);
+        final MyViewHolder holder = new MyViewHolder(view);
+        holder.itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                int position = holder.getAdapterPosition();
+                if (mClickListener != null) {
+                    mClickListener.onItemClick(position, v);
+                }
+            }
+        });
+        return holder;
+    }
+
+    @Override
+    public void onBindViewHolder(MyViewHolder holder, int position) {
+        if (!mBooleanArray.get(position)) {
+            holder.viewLine.setVisibility(View.INVISIBLE);
+            holder.itemView.setBackgroundResource(R.color.color_19d7d9);
+            holder.tvName.setTextColor(Color.BLACK);
+        } else {
+            holder.viewLine.setVisibility(View.VISIBLE);
+            holder.itemView.setBackgroundColor(Color.WHITE);
+            holder.tvName.setTextColor(mContext.getResources().getColor(R.color.colorAccent));
+        }
+        holder.tvName.setText(mItems.get(position));
+    }
+
+    @Override
+    public int getItemCount() {
+        return mItems.size();
+    }
+
+    public void setItemChecked(int position) {
+        mBooleanArray.put(position, true);
+
+        if (mLastCheckedPosition > -1) {
+            mBooleanArray.put(mLastCheckedPosition, false);
+            notifyItemChanged(mLastCheckedPosition);
+        }
+        notifyDataSetChanged();
+
+        mLastCheckedPosition = position;
+    }
+
+    class MyViewHolder extends RecyclerView.ViewHolder {
+        View viewLine;
+        TextView tvName;
+
+        public MyViewHolder(View itemView) {
+            super(itemView);
+            viewLine = itemView.findViewById(R.id.view_line);
+            tvName = (TextView) itemView.findViewById(R.id.tv_name);
+        }
+    }
+
+    public void setOnItemClickListener(OnItemClickListener itemClickListener) {
+        this.mClickListener = itemClickListener;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java b/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java
index 94c2871..cd92432 100644
--- a/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java
+++ b/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java
@@ -10,6 +10,7 @@
 import me.yokeyword.fragmentation.SupportFragment;
 import safeluck.drive.evaluation.fragment.BaseDatasFragment;
 import safeluck.drive.evaluation.fragment.GpsInfoFragment;
+import safeluck.drive.evaluation.fragment.SysExamSettingFragment;
 
 
 /**
@@ -19,7 +20,7 @@
  * All Rights Saved! Chongqing AnYun Tech co. LTD
  */
 public class SimpleFragmentAdapter  extends FragmentPagerAdapter {
-    private String[] mTitles = new String[]{"鍩虹鏁版嵁","GNSS淇℃伅"};
+    private String[] mTitles = new String[]{"鍩虹鏁版嵁","鑰冭瘯绯荤粺璁剧疆"};
     public SimpleFragmentAdapter(FragmentManager fm) {
         super(fm);
     }
@@ -41,7 +42,7 @@
 //                //椹炬牎淇℃伅
 //                break;
             case 1:
-                supportFragment = GpsInfoFragment.newInstance();
+                supportFragment = SysExamSettingFragment.newInstance();
                 break;
                 default:break;
         }
diff --git a/app/src/main/java/safeluck/drive/evaluation/adapter/SysSettingPagerAdapter.java b/app/src/main/java/safeluck/drive/evaluation/adapter/SysSettingPagerAdapter.java
new file mode 100644
index 0000000..72a8fc6
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/adapter/SysSettingPagerAdapter.java
@@ -0,0 +1,79 @@
+package safeluck.drive.evaluation.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import safeluck.drive.evaluation.R;
+import safeluck.drive.evaluation.bean.SysExamSettingLargeMenu;
+import safeluck.drive.evaluation.listener.OnItemClickListener;
+
+/**
+ *
+ */
+public class SysSettingPagerAdapter extends RecyclerView.Adapter<SysSettingPagerAdapter.MyViewHolder> {
+    private List<SysExamSettingLargeMenu> mItems = new ArrayList<>();
+    private LayoutInflater mInflater;
+
+    private OnItemClickListener mClickListener;
+    private Context mContext;
+    public SysSettingPagerAdapter(Context context) {
+        this.mInflater = LayoutInflater.from(context);
+        this.mContext = context;
+    }
+
+    public void setDatas(List<SysExamSettingLargeMenu> items) {
+        mItems.clear();
+        mItems.addAll(items);
+        notifyDataSetChanged();
+    }
+
+    @Override
+    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View view = mInflater.inflate(R.layout.item_pager, parent, false);
+        final MyViewHolder holder = new MyViewHolder(view);
+        holder.itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                int position = holder.getAdapterPosition();
+                if (mClickListener != null) {
+                    mClickListener.onItemClick(position, v);
+                }
+            }
+        });
+        return holder;
+    }
+
+    @Override
+    public void onBindViewHolder(MyViewHolder holder, int position) {
+        SysExamSettingLargeMenu item = mItems.get(position);
+        holder.tvTitle.setText(item.getMenuName());
+        holder.tvTitle.setCompoundDrawablesWithIntrinsicBounds(mContext.getResources().
+                getDrawable(item.getRes_id()),null,null,null);
+    }
+
+    @Override
+    public int getItemCount() {
+        return mItems.size();
+    }
+
+    class MyViewHolder extends RecyclerView.ViewHolder {
+        private TextView tvTitle;
+
+        public MyViewHolder(View itemView) {
+            super(itemView);
+            tvTitle = (TextView) itemView.findViewById(R.id.tv_title);
+        }
+    }
+
+    public void setOnItemClickListener(OnItemClickListener itemClickListener) {
+        this.mClickListener = itemClickListener;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/SysExamSettingLargeMenu.kt b/app/src/main/java/safeluck/drive/evaluation/bean/SysExamSettingLargeMenu.kt
new file mode 100644
index 0000000..f5a6f0d
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/SysExamSettingLargeMenu.kt
@@ -0,0 +1,35 @@
+package safeluck.drive.evaluation.bean
+
+import android.os.Parcel
+import android.os.Parcelable
+
+/**DriveJudge
+ * Created by lzw on 2020/9/11. 11:09:24
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+data class SysExamSettingLargeMenu(var menuName:String,var res_id:Int):Parcelable {
+    constructor(parcel: Parcel) : this(
+            parcel.readString(),
+            parcel.readInt()) {
+    }
+
+    override fun writeToParcel(parcel: Parcel, flags: Int) {
+        parcel.writeString(menuName)
+        parcel.writeInt(res_id)
+    }
+
+    override fun describeContents(): Int {
+        return 0
+    }
+
+    companion object CREATOR : Parcelable.Creator<SysExamSettingLargeMenu> {
+        override fun createFromParcel(parcel: Parcel): SysExamSettingLargeMenu {
+            return SysExamSettingLargeMenu(parcel)
+        }
+
+        override fun newArray(size: Int): Array<SysExamSettingLargeMenu?> {
+            return arrayOfNulls(size)
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/LargeItemSettingFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/LargeItemSettingFragment.java
new file mode 100644
index 0000000..cfd1bdb
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/LargeItemSettingFragment.java
@@ -0,0 +1,87 @@
+package safeluck.drive.evaluation.fragment;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.Toolbar;
+
+import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.R;
+
+/**
+ * Created by YoKeyword on 16/2/7.
+ */
+public class LargeItemSettingFragment extends SupportFragment {
+    private static final String ARG_NUMBER = "arg_number";
+
+    private Toolbar mToolbar;
+    private TextView mTvName;
+    private Button mBtnNext, mBtnNextWithFinish;
+
+    private int mNumber;
+
+    public static LargeItemSettingFragment newInstance(int number) {
+        LargeItemSettingFragment fragment = new LargeItemSettingFragment();
+        Bundle args = new Bundle();
+        args.putInt(ARG_NUMBER, number);
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Bundle args = getArguments();
+        if (args != null) {
+            mNumber = args.getInt(ARG_NUMBER);
+        }
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.fragment_largeitem_setting, container, false);
+        initView(view);
+        return view;
+    }
+
+    private void initView(View view) {
+        mToolbar = (Toolbar) view.findViewById(R.id.toolbar);
+        mTvName = (TextView) view.findViewById(R.id.tv_name);
+        mBtnNext = (Button) view.findViewById(R.id.btn_next);
+        mBtnNextWithFinish = (Button) view.findViewById(R.id.btn_next_with_finish);
+
+        String title = "CyclerFragment " + mNumber;
+
+        mToolbar.setTitle(title);
+        initToolbarNav(mToolbar);
+
+        mTvName.setText(title);
+        mBtnNext.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                start(LargeItemSettingFragment.newInstance(mNumber + 1));
+            }
+        });
+        mBtnNextWithFinish.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                startWithPop(LargeItemSettingFragment.newInstance(mNumber + 1));
+            }
+        });
+    }
+    protected void initToolbarNav(Toolbar toolbar) {
+        toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp);
+        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                pop();
+            }
+        });
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java
new file mode 100644
index 0000000..9a046c7
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java
@@ -0,0 +1,80 @@
+package safeluck.drive.evaluation.fragment;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.R;
+import safeluck.drive.evaluation.adapter.SysSettingPagerAdapter;
+import safeluck.drive.evaluation.bean.SysExamSettingLargeMenu;
+import safeluck.drive.evaluation.fragment.shop.ShopFragment;
+import safeluck.drive.evaluation.listener.OnItemClickListener;
+
+/**
+ * DriveJudge
+ * Created by lzw on 2020/9/10. 19:02:56
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class SysExamSettingFragment extends SupportFragment {
+    private RecyclerView mRecy;
+    private SysSettingPagerAdapter mAdapter;
+    ArrayList<SysExamSettingLargeMenu> items = new ArrayList<>();
+
+    public static SysExamSettingFragment newInstance(){
+        SysExamSettingFragment fragment = new SysExamSettingFragment();
+        return fragment;
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.fragment_pager, container, false);
+
+        initView(view);
+
+        return view;
+    }
+    private void initView(View view) {
+        mRecy = (RecyclerView) view.findViewById(R.id.recy);
+
+        mAdapter = new SysSettingPagerAdapter(_mActivity);
+        LinearLayoutManager manager = new LinearLayoutManager(_mActivity);
+        mRecy.setLayoutManager(manager);
+        mRecy.setAdapter(mAdapter);
+
+        mAdapter.setOnItemClickListener(new OnItemClickListener() {
+            @Override
+            public void onItemClick(int position, View view) {
+                Toast.makeText(_mActivity, position+"", Toast.LENGTH_SHORT).show();
+                if (getParentFragment() instanceof  BaseSettingFragment){
+                    ((BaseSettingFragment)getParentFragment()).start(ShopFragment.newInstance(items.get(position)));
+                }
+            }
+        });
+
+        mRecy.post(new Runnable() {
+            @Override
+            public void run() {
+                // Init Datas
+                ArrayList<String> menues = new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.array_large_item_menu)));
+
+                for (int i = 0; i < menues.size(); i++) {
+                    SysExamSettingLargeMenu item  = new SysExamSettingLargeMenu(menues.get(i),R.mipmap.province_id);
+                    items.add(item);
+                }
+                mAdapter.setDatas(items);
+            }
+        });
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java
new file mode 100644
index 0000000..2ee1c05
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java
@@ -0,0 +1,84 @@
+package safeluck.drive.evaluation.fragment.shop;
+
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+
+import me.yokeyword.fragmentation.SupportFragment;
+import me.yokeyword.fragmentation.anim.DefaultNoAnimator;
+import me.yokeyword.fragmentation.anim.FragmentAnimator;
+import safeluck.drive.evaluation.R;
+
+/**
+ * Created by YoKeyword on 16/2/9.
+ */
+public class ContentFragment extends SupportFragment {
+    private static final String ARG_MENU = "arg_menu";
+
+    private TextView mTvContent;
+    private Button mBtnNext;
+
+    private String mMenu;
+
+    public static ContentFragment newInstance(String menu) {
+
+        Bundle args = new Bundle();
+        args.putString(ARG_MENU, menu);
+
+        ContentFragment fragment = new ContentFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        Bundle args = getArguments();
+        if (args != null) {
+            mMenu = args.getString(ARG_MENU);
+        }
+    }
+
+    @Override
+    public FragmentAnimator onCreateFragmentAnimator() {
+        return new DefaultNoAnimator();
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.fragment_content, container, false);
+        initView(view);
+        return view;
+    }
+
+    private void initView(View view) {
+        mTvContent = (TextView) view.findViewById(R.id.tv_content);
+        mBtnNext = (Button) view.findViewById(R.id.btn_next);
+
+        mTvContent.setText("Content:\n" + mMenu);
+
+        mBtnNext.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                // 鍜孧sgFragment鍚岀骇鍒殑璺宠浆 浜ょ粰MsgFragment澶勭悊
+                if (getParentFragment() instanceof ShopFragment) {
+//                    ((ShopFragment) getParentFragment()).start(CycleFragment.newInstance(1));
+                }
+            }
+        });
+    }
+
+    @Override
+    public boolean onBackPressedSupport() {
+        // ContentFragment鏄疭hopFragment鐨勬爤椤跺瓙Fragment,鍙互鍦ㄦ澶勭悊杩斿洖鎸夐敭浜嬩欢
+        return super.onBackPressedSupport();
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/shop/MenuListFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/shop/MenuListFragment.java
new file mode 100644
index 0000000..becab68
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/shop/MenuListFragment.java
@@ -0,0 +1,117 @@
+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<String> mMenus;
+    private int mCurrentPosition = -1;
+
+    public static MenuListFragment newInstance(ArrayList<String> 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);
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ShopFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ShopFragment.java
new file mode 100644
index 0000000..b0f434f
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ShopFragment.java
@@ -0,0 +1,95 @@
+package safeluck.drive.evaluation.fragment.shop;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.Toolbar;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.R;
+import safeluck.drive.evaluation.bean.SysExamSettingLargeMenu;
+
+/**
+ * Created by YoKeyword on 16/2/4.
+ */
+public class ShopFragment extends SupportFragment {
+    public static final String TAG = ShopFragment.class.getSimpleName();
+    private static final String ARG_MENU = "arg_menu_large";
+    private Toolbar mToolbar;
+    private SysExamSettingLargeMenu mMenu;
+
+    public static ShopFragment newInstance(SysExamSettingLargeMenu sysExamSettingLargeMenu) {
+        Bundle args = new Bundle();
+        args.putParcelable(ARG_MENU,sysExamSettingLargeMenu);
+        ShopFragment fragment = new ShopFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.fragment_shop, container, false);
+        initView(view, savedInstanceState);
+        return view;
+    }
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        Bundle args = getArguments();
+        if (args != null) {
+            mMenu = args.getParcelable(ARG_MENU);
+        }
+    }
+
+    private void initView(View view, Bundle savedInstanceState) {
+        mToolbar = (Toolbar) view.findViewById(R.id.toolbar);
+
+        mToolbar.setTitle(mMenu.getMenuName());
+        initToolbarNav(mToolbar);
+
+        if (findChildFragment(MenuListFragment.class) == null) {
+            ArrayList<String> listMenus = new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.array_exam_rule_menu)));
+            MenuListFragment menuListFragment = MenuListFragment.newInstance(listMenus);
+            loadRootFragment(R.id.fl_list_container, menuListFragment);
+            // false:  涓嶅姞鍏ュ洖閫�鏍�;  false: 涓嶆樉绀哄姩鐢�
+            loadRootFragment(R.id.fl_content_container, ContentFragment.newInstance(listMenus.get(0)), false, false);
+        }
+    }
+
+    @Override
+    public boolean onBackPressedSupport() {
+        // ContentFragment鏄疭hopFragment鐨勬爤椤跺瓙Fragment,浼氬厛璋冪敤ContentFragment鐨刼nBackPressedSupport鏂规硶
+        Toast.makeText(_mActivity, "onBackPressedSupport-->return false, 涓婂眰澶勭悊"  , Toast.LENGTH_SHORT).show();
+        return false;
+    }
+
+    /**
+     * 鏇挎崲鍔犺浇 鍐呭Fragment
+     *
+     * @param fragment
+     */
+    public void switchContentFragment(ContentFragment fragment) {
+        SupportFragment contentFragment = findChildFragment(ContentFragment.class);
+        if (contentFragment != null) {
+            contentFragment.replaceFragment(fragment, false);
+        }
+    }
+    protected void initToolbarNav(Toolbar toolbar) {
+        toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp);
+        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                pop();
+            }
+        });
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/listener/OnItemClickListener.java b/app/src/main/java/safeluck/drive/evaluation/listener/OnItemClickListener.java
new file mode 100644
index 0000000..1c4d1dc
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/listener/OnItemClickListener.java
@@ -0,0 +1,7 @@
+package safeluck.drive.evaluation.listener;
+
+import android.view.View;
+
+public interface OnItemClickListener {
+    void onItemClick(int position, View view);
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_content.xml b/app/src/main/res/layout/fragment_content.xml
new file mode 100644
index 0000000..906b49a
--- /dev/null
+++ b/app/src/main/res/layout/fragment_content.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:gravity="center"
+              android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/tv_content"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dp"
+        android:gravity="center_horizontal"
+        android:textColor="@android:color/white"
+        android:text="CyclerFragment1"
+        android:textSize="26sp"/>
+
+
+    <Button
+        android:id="@+id/btn_next"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="16dp"
+        android:layout_marginRight="16dp"
+        android:layout_marginTop="32dp"
+        android:textAllCaps="false"
+        android:text="start_cycler"/>
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/fragment_largeitem_setting.xml b/app/src/main/res/layout/fragment_largeitem_setting.xml
new file mode 100644
index 0000000..0b33a73
--- /dev/null
+++ b/app/src/main/res/layout/fragment_largeitem_setting.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical">
+
+    <include layout="@layout/toolbar"/>
+
+    <TextView
+        android:id="@+id/tv_name"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dp"
+        android:gravity="center_horizontal"
+        android:text="CyclerFragment1"
+        android:textSize="30sp"/>
+
+    <Button
+        android:id="@+id/btn_next_with_finish"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAllCaps="false"
+        android:layout_marginTop="48dp"
+        android:text="鍚姩鍚姩CyclerFragment锛屽苟鍏抽棴鑷繁"/>
+
+    <Button
+        android:id="@+id/btn_next"
+        android:layout_width="match_parent"
+        android:textAllCaps="false"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="48dp"
+        android:text="鍚姩CyclerFragment"/>
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/fragment_list_menu.xml b/app/src/main/res/layout/fragment_list_menu.xml
new file mode 100644
index 0000000..f8de5f9
--- /dev/null
+++ b/app/src/main/res/layout/fragment_list_menu.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.recyclerview.widget.RecyclerView
+    android:id="@+id/recy"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_pager.xml b/app/src/main/res/layout/fragment_pager.xml
new file mode 100644
index 0000000..e2f81d5
--- /dev/null
+++ b/app/src/main/res/layout/fragment_pager.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent">
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/recy"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_shop.xml b/app/src/main/res/layout/fragment_shop.xml
new file mode 100644
index 0000000..8349c68
--- /dev/null
+++ b/app/src/main/res/layout/fragment_shop.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical">
+
+    <include layout="@layout/toolbar"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal">
+
+        <FrameLayout
+            android:id="@+id/fl_list_container"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"/>
+
+        <FrameLayout
+            android:id="@+id/fl_content_container"
+            android:layout_width="0dp"
+            android:layout_weight="2.5"
+            android:layout_height="match_parent"/>
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/item_menu.xml b/app/src/main/res/layout/item_menu.xml
new file mode 100644
index 0000000..501fb34
--- /dev/null
+++ b/app/src/main/res/layout/item_menu.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="48dp"
+                android:background="@drawable/ic_bground"
+                android:orientation="vertical">
+
+    <View
+        android:id="@+id/view_line"
+        android:layout_width="3dp"
+        android:visibility="invisible"
+        android:layout_height="match_parent"
+        android:background="@color/colorAccent"/>
+
+    <TextView
+        android:id="@+id/tv_name"
+        android:layout_width="wrap_content"
+        android:layout_centerInParent="true"
+        android:layout_marginLeft="8dp"
+        android:layout_marginRight="8dp"
+        android:layout_height="wrap_content"
+        android:textColor="@android:color/white"
+        android:layout_toRightOf="@id/view_line"/>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0.3dp"
+        android:background="#c9c9c9"/>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_pager.xml b/app/src/main/res/layout/item_pager.xml
new file mode 100644
index 0000000..8821963
--- /dev/null
+++ b/app/src/main/res/layout/item_pager.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="56dp"
+              android:orientation="vertical"
+              android:paddingLeft="16dp"
+              android:paddingRight="16dp">
+
+    <TextView
+        android:id="@+id/tv_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerVertical="true"
+        android:textColor="@android:color/white"
+        android:text="sdf"
+        android:drawablePadding="@dimen/ui_margin_5dp"
+        android:textSize="17sp"/>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0.2dp"
+        android:layout_alignParentBottom="true"
+        android:background="#c9c9c9"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f37080b..ba1c0b0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -58,7 +58,29 @@
         <item>妯℃嫙澶滈棿鑰冭瘯瀹屾垚璇峰叧闂墍鏈夌伅鍏夛紝璇疯捣姝ョ户缁畬鎴愯�冭瘯</item>
     </array>
 
+    <string-array name="array_exam_rule_menu">
+        <item>妗d綅鐩稿叧璁剧疆</item>
+        <item>甯哥敤鍙傛暟璁剧疆</item>
+        <item>閫氱敤璇勫垽璁剧疆</item>
+        <item>涓婅溅璧锋璁剧疆</item>
+        <item>鐩寸嚎琛岄┒璁剧疆</item>
+        <item>閫氳繃绔欑偣璁剧疆</item>
+        <item>杞悜鐏厜璁剧疆</item>
+        <item>瓒呰溅浼氳溅璁剧疆</item>
+        <item>鍔犲噺妗d綅璁剧疆</item>
+        <item>闈犺竟鍋滆溅璁剧疆</item>
 
+    </string-array>
+
+<string-array name="array_large_item_menu">
+    <item>鐏厜璁剧疆</item>
+    <item>瑙勫垯璁剧疆</item>
+    <item>鎵e垎璁剧疆</item>
+    <item>鎸囦护璁剧疆</item>
+    <item>绯荤粺璁剧疆</item>
+    <item>鏁欏绯荤粺璁剧疆</item>
+    <item>妗d綅瀛︿範</item>
+</string-array>
 
 
 

--
Gitblit v1.8.0