app/src/main/java/safeluck/drive/evaluation/adapter/MenuAdapter.java
New file @@ -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; } } 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; } app/src/main/java/safeluck/drive/evaluation/adapter/SysSettingPagerAdapter.java
New file @@ -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; } } app/src/main/java/safeluck/drive/evaluation/bean/SysExamSettingLargeMenu.kt
New file @@ -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) } } } app/src/main/java/safeluck/drive/evaluation/fragment/LargeItemSettingFragment.java
New file @@ -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(); } }); } } app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java
New file @@ -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); } }); } } app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java
New file @@ -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) { // 和MsgFragment同级别的跳转 交给MsgFragment处理 if (getParentFragment() instanceof ShopFragment) { // ((ShopFragment) getParentFragment()).start(CycleFragment.newInstance(1)); } } }); } @Override public boolean onBackPressedSupport() { // ContentFragment是ShopFragment的栈顶子Fragment,可以在此处理返回按键事件 return super.onBackPressedSupport(); } } app/src/main/java/safeluck/drive/evaluation/fragment/shop/MenuListFragment.java
New file @@ -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); } } app/src/main/java/safeluck/drive/evaluation/fragment/shop/ShopFragment.java
New file @@ -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是ShopFragment的栈顶子Fragment,会先调用ContentFragment的onBackPressedSupport方法 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(); } }); } } app/src/main/java/safeluck/drive/evaluation/listener/OnItemClickListener.java
New file @@ -0,0 +1,7 @@ package safeluck.drive.evaluation.listener; import android.view.View; public interface OnItemClickListener { void onItemClick(int position, View view); } app/src/main/res/layout/fragment_content.xml
New file @@ -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> app/src/main/res/layout/fragment_largeitem_setting.xml
New file @@ -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> app/src/main/res/layout/fragment_list_menu.xml
New file @@ -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"/> app/src/main/res/layout/fragment_pager.xml
New file @@ -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> app/src/main/res/layout/fragment_shop.xml
New file @@ -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> app/src/main/res/layout/item_menu.xml
New file @@ -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> app/src/main/res/layout/item_pager.xml
New file @@ -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> app/src/main/res/values/strings.xml
@@ -58,7 +58,29 @@ <item>模拟夜间考试完成请关闭所有灯光,请起步继续完成考试</item> </array> <string-array name="array_exam_rule_menu"> <item>档位相关设置</item> <item>常用参数设置</item> <item>通用评判设置</item> <item>上车起步设置</item> <item>直线行驶设置</item> <item>通过站点设置</item> <item>转向灯光设置</item> <item>超车会车设置</item> <item>加减档位设置</item> <item>靠边停车设置</item> </string-array> <string-array name="array_large_item_menu"> <item>灯光设置</item> <item>规则设置</item> <item>扣分设置</item> <item>指令设置</item> <item>系统设置</item> <item>教学系统设置</item> <item>档位学习</item> </string-array>