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