Browse Source

[카테고리메인][New] 카테고리 메인시리즈 커스텀 리싸이클러뷰 추가

Hasemi 7 years ago
parent
commit
f0358b359a

+ 30 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/main/series/IMainSeriesContract.java

@@ -0,0 +1,30 @@
+package kr.co.zumo.app.lifeplus.view.custom.main.series;
+
+/**
+ * IMainSeriesContract
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-22]   [최초 작성]
+ * @since 2018-10-22
+ */
+public interface IMainSeriesContract {
+
+  interface View{
+
+    void setPresenter(IMainSeriesContract.Presenter presenter);
+    void onClickItem(int position);
+  }
+
+  interface Presenter{
+    void onClickItem(int position);
+
+  }
+
+  interface Listener{
+    void onClickItem(int position);
+
+  }
+}

+ 19 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/main/series/MainSeriesPresenter.java

@@ -0,0 +1,19 @@
+package kr.co.zumo.app.lifeplus.view.custom.main.series;
+
+/**
+ * MainSeriesPresenter
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-22]   [최초 작성]
+ * @since 2018-10-22
+ */
+public class MainSeriesPresenter implements IMainSeriesContract.Presenter {
+
+  @Override
+  public void onClickItem(int position) {
+
+  }
+}

+ 62 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/main/series/MainSeriesView.java

@@ -0,0 +1,62 @@
+package kr.co.zumo.app.lifeplus.view.custom.main.series;
+
+import android.content.Context;
+import android.support.constraint.ConstraintLayout;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+
+import java.util.List;
+
+import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.bean.TextImageBean;
+import kr.co.zumo.app.lifeplus.view.fragment.main.category.series.CustomImageTextAdapter;
+
+/**
+ * CustomRecyclerView
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-22]   [최초 작성]
+ * @since 2018-10-22
+ */
+public class MainSeriesView extends ConstraintLayout implements  IMainSeriesContract.View{
+
+  private IMainSeriesContract.Presenter presenter;
+
+  public void setPresenter(IMainSeriesContract.Presenter presenter){
+    this.presenter = presenter;
+  }
+
+  @Override
+  public void onClickItem(int position) {
+    presenter.onClickItem(position);
+  }
+
+  public MainSeriesView(Context context) {
+    super(context);
+  }
+
+  public MainSeriesView(Context context, AttributeSet attrs) {
+    super(context, attrs);
+
+  }
+
+  public MainSeriesView(Context context, AttributeSet attrs, int defStyleAttr) {
+    super(context, attrs, defStyleAttr);
+
+  }
+
+  public void init(Context context, List<TextImageBean> textImageBeanList, int itemCount) {
+    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+    inflater.inflate(R.layout.main_series_view, this);
+    RecyclerView recyclerView = (RecyclerView)findViewById(R.id.main_category_recycler_view);
+    recyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false));
+    recyclerView.setAdapter(new CustomImageTextAdapter(context, inflater, textImageBeanList, itemCount));
+
+  }
+
+}

+ 25 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FirstCategoryMainFragment.java

@@ -7,9 +7,14 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.bean.TextImageBean;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
 import kr.co.zumo.app.lifeplus.model.BlankModel;
+import kr.co.zumo.app.lifeplus.view.custom.main.series.MainSeriesView;
 import kr.co.zumo.app.lifeplus.view.fragment.FragmentBase;
 import kr.co.zumo.app.lifeplus.view.presenter.FirstCategoryMainPresenter;
 
@@ -25,6 +30,8 @@ import kr.co.zumo.app.lifeplus.view.presenter.FirstCategoryMainPresenter;
  */
 public class FirstCategoryMainFragment extends FragmentBase<FirstCategoryMainPresenter> {
 
+  private List<TextImageBean> textImageBeanList;
+  private MainSeriesView mainSeriesView;
 
   @Nullable
   @Override
@@ -34,7 +41,9 @@ public class FirstCategoryMainFragment extends FragmentBase<FirstCategoryMainPre
 
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
-
+    mainSeriesView = findViewById(R.id.series_image_text_view);
+    doDataSetting();
+    mainSeriesView.init(getActivity(),textImageBeanList, 10);
   }
 
   @Override
@@ -50,4 +59,19 @@ public class FirstCategoryMainFragment extends FragmentBase<FirstCategoryMainPre
   protected FirstCategoryMainPresenter definePresenter() {
     return new FirstCategoryMainPresenter(getModel(BlankModel.class), this);
   }
+
+  public void doDataSetting(){
+    textImageBeanList = new ArrayList<>();
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_1, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_2, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_3, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_4, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_5, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_6, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_7, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_8, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_9, R.string.my_coin ));
+    textImageBeanList.add(new TextImageBean(R.drawable.img_select_bg_10, R.string.my_coin ));
+
+  }
 }

+ 58 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/series/CustomImageTextAdapter.java

@@ -0,0 +1,58 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category.series;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.util.List;
+
+import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.bean.TextImageBean;
+import kr.co.zumo.app.lifeplus.view.custom.main.series.IMainSeriesContract;
+
+/**
+ * CustomImageTextAdapter
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-22]   [최초 작성]
+ * @since 2018-10-22
+ */
+public class CustomImageTextAdapter extends RecyclerView.Adapter<CustomImageTextViewHolder> {
+
+  private int itemCount;
+  private Context context;
+  private LayoutInflater layoutInflater;
+  private List<TextImageBean> textImageBeanList;
+  private IMainSeriesContract.Listener listener;
+
+  public CustomImageTextAdapter(Context context, LayoutInflater layoutInflater ,List<TextImageBean> textImageBeanList ,int itemCount) {
+    this.context = context;
+    this.layoutInflater = layoutInflater;
+    this.itemCount = itemCount;
+    this.textImageBeanList = textImageBeanList;
+  }
+
+  @NonNull
+  @Override
+  public CustomImageTextViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+    View view = layoutInflater.inflate(R.layout.image_and_text_contents, parent, false);
+    return new CustomImageTextViewHolder(view, listener);
+  }
+
+  @Override
+  public void onBindViewHolder(@NonNull CustomImageTextViewHolder holder, int position) {
+    TextImageBean bean = textImageBeanList.get(position);
+    holder.doDataSetting(bean);
+  }
+
+  @Override
+  public int getItemCount() {
+    return itemCount;
+  }
+}

+ 46 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/series/CustomImageTextViewHolder.java

@@ -0,0 +1,46 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category.series;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.bean.TextImageBean;
+import kr.co.zumo.app.lifeplus.view.custom.main.series.IMainSeriesContract;
+
+/**
+ * CustomImageTextViewHolder
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-22]   [최초 작성]
+ * @since 2018-10-22
+ */
+public class CustomImageTextViewHolder extends RecyclerView.ViewHolder {
+
+  private ImageView imageViewMainCategory;
+  private TextView textViewMainCategory;
+
+  public CustomImageTextViewHolder(View itemView, IMainSeriesContract.Listener listener) {
+    super(itemView);
+    imageViewMainCategory = itemView.findViewById(R.id.image_view_main_contents);
+    textViewMainCategory = itemView.findViewById(R.id.text_view_main_contents);
+
+
+  }
+
+  public void doDataSetting(TextImageBean bean){
+    imageViewMainCategory.setImageDrawable(itemView.getResources().getDrawable(bean.getImageResource()));
+    textViewMainCategory.setText(bean.getTextResource());
+    imageViewMainCategory.setOnClickListener(new View.OnClickListener() {
+      @Override
+      public void onClick(View view) {
+
+      }
+    });
+
+  }
+}

+ 6 - 0
app/src/main/res/layout/fragment_first_category_main.xml

@@ -2,5 +2,11 @@
 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                              android:layout_width="match_parent"
                                              android:layout_height="match_parent">
+  <kr.co.zumo.app.lifeplus.view.custom.main.series.MainSeriesView
+    android:id="@+id/series_image_text_view"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+  </kr.co.zumo.app.lifeplus.view.custom.main.series.MainSeriesView>
 
 </android.support.constraint.ConstraintLayout>

+ 29 - 0
app/src/main/res/layout/image_and_text_contents.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+  android:gravity="center"
+  android:orientation="vertical"
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  android:layout_width="wrap_content"
+  android:layout_height="wrap_content">
+  <ImageView
+    android:id="@+id/image_view_main_contents"
+    app:srcCompat="@drawable/img_select_bg_1"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    />
+  <TextView
+    android:id="@+id/text_view_main_contents"
+    android:layout_marginTop="13dp"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:textSize="11sp"
+    android:textColor="@color/C000000"
+    android:lineSpacingExtra="4sp"
+    android:gravity="center_horizontal"
+    android:text="카페 거리
+걷기"
+    />
+
+
+</LinearLayout>

+ 11 - 0
app/src/main/res/layout/main_series_view.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent">
+
+  <android.support.v7.widget.RecyclerView
+    android:id="@+id/main_category_recycler_view"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"/>
+</android.support.constraint.ConstraintLayout>