From 662fbe9c960c453fd95a30dc5f3147977c2dbaff Mon Sep 17 00:00:00 2001 From: mwang <8205347@qq.com> Date: Thu, 14 Feb 2019 00:58:03 +0800 Subject: [PATCH] update protype --- zhuike/src/main/AndroidManifest.xml | 2 +- .../java/com/deiniu/zhuike/BasicFragment.java | 143 ++++++++++++ .../com/deiniu/zhuike/Fragment_Shelf.java | 96 +++++++- .../com/deiniu/zhuike/Fragment_jingxuan.java | 184 ++++++++++++++- zhuike/src/main/res/layout/app_bar_main2.xml | 2 + zhuike/src/main/res/layout/app_bar_main4.xml | 14 +- .../res/layout/fragment_fragment__shelf.xml | 19 +- .../src/main/res/layout/fragment_jingxuan.xml | 67 +++++- .../layout/fragment_jingxuan_book_list.xml | 1 + .../fragment_shelf_botoomsheetdialog.xml | 220 ++++++++++++++++++ .../src/main/res/layout/recycle_list_item.xml | 51 ++++ .../res/layout/recycle_list_item_horizon.xml | 64 +++++ zhuike/src/main/res/values/colors.xml | 1 + 13 files changed, 848 insertions(+), 16 deletions(-) create mode 100644 zhuike/src/main/res/layout/fragment_shelf_botoomsheetdialog.xml create mode 100644 zhuike/src/main/res/layout/recycle_list_item.xml create mode 100644 zhuike/src/main/res/layout/recycle_list_item_horizon.xml diff --git a/zhuike/src/main/AndroidManifest.xml b/zhuike/src/main/AndroidManifest.xml index 07accbd..695f86b 100644 --- a/zhuike/src/main/AndroidManifest.xml +++ b/zhuike/src/main/AndroidManifest.xml @@ -24,7 +24,7 @@ android:label="@string/title_activity_main3" /> diff --git a/zhuike/src/main/java/com/deiniu/zhuike/BasicFragment.java b/zhuike/src/main/java/com/deiniu/zhuike/BasicFragment.java index 77a1040..7453b71 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/BasicFragment.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/BasicFragment.java @@ -7,10 +7,18 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; +import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; /** @@ -73,4 +81,139 @@ public abstract class BasicFragment extends Fragment { super.onDetach(); mListener = null; } + + + + + + + //--------------------------------------------------------------book list adapter------------------------------------------------ + interface OnItemClickLitener + { + void onItemClick(View view, int position); + void onItemLongClick(View view , int position); + } + + class BookListAdapter extends RecyclerView.Adapter { + private final int EMPTY_VIEW = 1; + private final int PROGRESS_VIEW = 2; + private final int IMAGE_VIEW = 3; + + private Context context; + private List mDatas = new ArrayList(); + private OnItemClickLitener mOnItemClickLitener; + private int listItemID; + public BookListAdapter(Context context,List mDatas,int listItemID,OnItemClickLitener clickLitener) { + this.context = context; + this.mDatas = mDatas; + this.mOnItemClickLitener = clickLitener; + this.listItemID = listItemID; + } + public BookListAdapter(Context context, OnItemClickLitener clickLitener) { + this.context = context; + this.mOnItemClickLitener = clickLitener; + + } + + @Override + public int getItemViewType(int position) { + if(mDatas.size() == 0){ + return EMPTY_VIEW; + } else if(mDatas.get(position) == null){ + return PROGRESS_VIEW; + } else { + return super.getItemViewType(position); + } + } + + @Override + public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) + { + MyViewHolder holder = new MyViewHolder(LayoutInflater.from( + context).inflate(listItemID, parent, + false)); + return holder; + } + + + + public void setParameters(List mDatas,int listItemID ) { + this.mDatas = mDatas; + this.listItemID = listItemID; + } + + public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) + { + this.mOnItemClickLitener = mOnItemClickLitener; + } + + @Override + public void onBindViewHolder(MyViewHolder holder, int position) + { + holder.tvTitle.setText(mDatas.get(position)); + holder.tvAuthor.setText("金庸" +position); + holder.tvCate.setText("cate"+position); + holder.tvDesc.setText("this is desc " +position); + // 如果设置了回调,则设置点击事件 + if (mOnItemClickLitener != null) + { + holder.itemView.setOnClickListener(new View.OnClickListener() + { + @Override + public void onClick(View v) + { + int pos = holder.getLayoutPosition(); + mOnItemClickLitener.onItemClick(holder.itemView, pos); + } + }); + + holder.itemView.setOnLongClickListener(new View.OnLongClickListener() + { + @Override + public boolean onLongClick(View v) + { + int pos = holder.getLayoutPosition(); + mOnItemClickLitener.onItemLongClick(holder.itemView, pos); + return false; + } + }); + } + } + + @Override + public int getItemCount() + { + return mDatas.size(); + } + public void addData(int position) { + mDatas.add(position, "Insert One"); + notifyItemInserted(position); + } + + public void removeData(int position) { + mDatas.remove(position); + notifyItemRemoved(position); + } + class MyViewHolder extends RecyclerView.ViewHolder + { + @BindView(R.id.title) + TextView tvTitle; + @BindView(R.id.author) + TextView tvAuthor; + @BindView(R.id.category) + TextView tvCate; + @BindView(R.id.desc) + TextView tvDesc; + public MyViewHolder(View view) + { + super(view); + ButterKnife.bind(this, view); + //tvTitle = (TextView) view.findViewById(R.id.title); + // tvAuthor = (TextView) view.findViewById(R.id.author); + + } + } + } +//-------------------------------------------------------------------------------------book list adapter end-------------------------------------------------- + } diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_Shelf.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_Shelf.java index b581e6f..d0aac05 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_Shelf.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_Shelf.java @@ -3,14 +3,25 @@ package com.deiniu.zhuike; import android.content.Context; import android.net.Uri; import android.os.Bundle; +import android.support.design.widget.BottomSheetDialog; import android.support.v4.app.Fragment; +import android.support.v4.view.ViewPager; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; +import android.widget.Toast; import com.google.android.gms.plus.PlusOneButton; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; import butterknife.ButterKnife; /** @@ -69,8 +80,33 @@ public class Fragment_Shelf extends BasicFragment { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } + + initData(); + + mAdapter = new BookListAdapter(activity,mDatas,R.layout.recycle_list_item,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + initDialog(position); + // mAdapter.removeData(position); + } + }); } + @BindView(R.id.id_recyclerview) + RecyclerView mRecyclerView; + private List mDatas; + private BookListAdapter mAdapter; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -79,9 +115,65 @@ public class Fragment_Shelf extends BasicFragment { View view = inflater.inflate(R.layout.fragment_fragment__shelf, container, false); ButterKnife.bind(this, view); + initReceyleView(); + return view; + } + + void initReceyleView() { + + // mRecyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); + mRecyclerView.setLayoutManager(new GridLayoutManager(activity,3)); + mRecyclerView.setAdapter(mAdapter ); + /* + mAdapter.setOnItemClickLitener(new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + initDialog(position); + // mAdapter.removeData(position); + } + }); + */ + } + + + protected void initData() + { + mDatas = new ArrayList(); + for (int i = 'A'; i < 'G'; i++) + { + mDatas.add("射雕" + (char) i); + } + } + + private void initDialog(int position) { + + BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this.activity); + bottomSheetDialog.setContentView(R.layout.fragment_shelf_botoomsheetdialog); +//给布局设置透明背景色 + bottomSheetDialog.getDelegate().findViewById(android.support.design.R.id.design_bottom_sheet) + .setBackgroundColor(getResources().getColor(android.R.color.transparent)); + + TextView tv =(TextView) bottomSheetDialog.findViewById(R.id.bdTitle); + tv.setText(mDatas.get(position)); + + bottomSheetDialog.show(); + } + + + @Override public void onResume() { super.onResume(); @@ -91,14 +183,10 @@ public class Fragment_Shelf extends BasicFragment { } - - @Override public void setFTag() { TAG="com.deiniu.zhuike.Fragment_Shelf"; } - - } diff --git a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan.java b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan.java index 8172c52..5b0e321 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/Fragment_jingxuan.java @@ -6,12 +6,16 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; +import android.widget.Toast; import com.bumptech.glide.Glide; import com.deiniu.zhuike.utils.MyViewPager; @@ -78,6 +82,25 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } + initData(); + mAdapter = new BookListAdapter(activity,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + // initDialog(position); + // mAdapter.removeData(position); + } + }); + } @Override @@ -91,7 +114,7 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener // testBanner2(banner2,new BannerListioner2()); initTuijianPagers(); - + initialBookList(); return v; } @@ -206,10 +229,169 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener mViewpagerTuijian.setAdapter(mAdapter); + } + + //---------------------------------------------------book cate list-------------------------------begin + + private BookListAdapter mAdapter; + private List mHotNewData_l,mHotNewData_g,mHotLianZaiData_l, mHotLianZaiData_g,mFinishedData_l, mFinishedData_g; + + @BindView(R.id.rvHotNewL) RecyclerView rvHotNewL; + @BindView(R.id.rvHotNewG) RecyclerView rvHotNewG; + @BindView(R.id.rvLianZaiG) RecyclerView rvLianZaiG; + @BindView(R.id.rvLianZaiL) RecyclerView rvLianZaiL; + @BindView(R.id.rvFinishL) RecyclerView rvFinishL; + @BindView(R.id.rvFinishG) RecyclerView rvFinishG; + + void initialBookList() { + + rvHotNewL.setLayoutManager(new LinearLayoutManager(activity)); + rvHotNewL.setAdapter(new BookListAdapter(activity,mHotNewData_l,R.layout.recycle_list_item_horizon ,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + // initDialog(position); + // mAdapter.removeData(position); + } + })); + + rvHotNewG.setLayoutManager(new GridLayoutManager(activity,3)); + mAdapter.setParameters(mHotNewData_g,R.layout.recycle_list_item ); + rvHotNewG.setAdapter(new BookListAdapter(activity,mHotNewData_g,R.layout.recycle_list_item,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + // initDialog(position); + // mAdapter.removeData(position); + } + })); + + rvLianZaiL.setLayoutManager(new LinearLayoutManager(this.activity)); + + rvLianZaiL.setAdapter(new BookListAdapter(activity,mHotLianZaiData_l,R.layout.recycle_list_item_horizon,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + // initDialog(position); + // mAdapter.removeData(position); + } + })); + + rvLianZaiG.setLayoutManager(new GridLayoutManager(activity,3)); + + rvLianZaiG.setAdapter(new BookListAdapter(activity,mHotLianZaiData_g,R.layout.recycle_list_item,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + // initDialog(position); + // mAdapter.removeData(position); + } + })); + + rvFinishL.setLayoutManager(new LinearLayoutManager(this.activity)); + rvFinishL.setAdapter(new BookListAdapter(activity,mFinishedData_l,R.layout.recycle_list_item_horizon,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + // initDialog(position); + // mAdapter.removeData(position); + } + })); + + rvFinishG.setLayoutManager(new GridLayoutManager(activity,3)); + + rvFinishG.setAdapter(new BookListAdapter(activity,mFinishedData_g,R.layout.recycle_list_item ,new OnItemClickLitener() + { + + @Override + public void onItemClick(View view, int position) + { + Toast.makeText(activity, position + " click", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onItemLongClick(View view, int position) + { + // initDialog(position); + // mAdapter.removeData(position); + } + })); + } + void initData() { + mHotNewData_l = initData(mHotNewData_l,'B'); + mHotNewData_g= initData(mHotNewData_g,'D'); + mHotLianZaiData_l= initData(mHotLianZaiData_l,'C'); + mHotLianZaiData_g=initData(mHotLianZaiData_g,'D'); + mFinishedData_l=initData(mFinishedData_l,'A'); + mFinishedData_g=initData(mFinishedData_g,'G'); + } + protected List initData(List mDatas,char x) + { + mDatas = new ArrayList(); + for (int i = 'A'; i < x; i++) + { + mDatas.add("射雕" + (char) i); + } + return mDatas; + } + + + + + + + + diff --git a/zhuike/src/main/res/layout/app_bar_main2.xml b/zhuike/src/main/res/layout/app_bar_main2.xml index 7d18d72..2f89705 100644 --- a/zhuike/src/main/res/layout/app_bar_main2.xml +++ b/zhuike/src/main/res/layout/app_bar_main2.xml @@ -5,6 +5,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Main2Activity"> + + - + + + + - + - - + \ No newline at end of file diff --git a/zhuike/src/main/res/layout/fragment_jingxuan.xml b/zhuike/src/main/res/layout/fragment_jingxuan.xml index 5db438a..542a375 100644 --- a/zhuike/src/main/res/layout/fragment_jingxuan.xml +++ b/zhuike/src/main/res/layout/fragment_jingxuan.xml @@ -107,7 +107,26 @@ - + + + + + + @@ -139,7 +158,28 @@ - + + + + + + - + + + + + + diff --git a/zhuike/src/main/res/layout/fragment_jingxuan_book_list.xml b/zhuike/src/main/res/layout/fragment_jingxuan_book_list.xml index 9b8ce77..a05b163 100644 --- a/zhuike/src/main/res/layout/fragment_jingxuan_book_list.xml +++ b/zhuike/src/main/res/layout/fragment_jingxuan_book_list.xml @@ -15,6 +15,7 @@ android:gravity="center" android:background="@drawable/item_selector" android:clickable="true" + android:layout_weight="1"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + + + + + . + + + + + + . + + + + + + . + + + + + + + + + diff --git a/zhuike/src/main/res/layout/recycle_list_item.xml b/zhuike/src/main/res/layout/recycle_list_item.xml new file mode 100644 index 0000000..db2168f --- /dev/null +++ b/zhuike/src/main/res/layout/recycle_list_item.xml @@ -0,0 +1,51 @@ + + + + + + + + + diff --git a/zhuike/src/main/res/layout/recycle_list_item_horizon.xml b/zhuike/src/main/res/layout/recycle_list_item_horizon.xml new file mode 100644 index 0000000..9e9c7c5 --- /dev/null +++ b/zhuike/src/main/res/layout/recycle_list_item_horizon.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + diff --git a/zhuike/src/main/res/values/colors.xml b/zhuike/src/main/res/values/colors.xml index 69b2233..91487f0 100644 --- a/zhuike/src/main/res/values/colors.xml +++ b/zhuike/src/main/res/values/colors.xml @@ -3,4 +3,5 @@ #008577 #00574B #D81B60 + #ffffff