瀏覽代碼

[카테고리메인][Common] THIS WEEK 페이지 구현 및 일부 클래스 수정

Hasemi 7 年之前
父節點
當前提交
92d17aedeb

+ 80 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FifthCategoryMainAdapter.java

@@ -0,0 +1,80 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category;
+
+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 kr.co.zumo.app.R;
+
+/**
+ * FifthCategoryMainAdapter
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-24]   [최초 작성]
+ * @since 2018-10-24
+ */
+public class FifthCategoryMainAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+
+  private Context context;
+  private LayoutInflater inflater;
+  private static final int TITLE_VIEW_TYPE = 0;
+  private static final int LINEAR_VIEW_TYPE = 1;
+
+  public FifthCategoryMainAdapter(Context context) {
+    this.context = context;
+    this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+  }
+
+  @NonNull
+  @Override
+  public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+    View view;
+    switch (viewType) {
+      case TITLE_VIEW_TYPE:
+        view = inflater.inflate(R.layout.main_fifth_category_title_view, parent, false);
+        return new FifthCategoryMainTitleViewHolder(view);
+      case LINEAR_VIEW_TYPE:
+        view = inflater.inflate(R.layout.main_fifth_category_linear_view, parent, false);
+        return new FifthCategoryMainLinearViewHolder(view);
+      default:
+        break;
+    }
+    return null;
+  }
+
+  @Override
+  public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+    switch (getItemViewType(position)) {
+      case TITLE_VIEW_TYPE:
+        ((FifthCategoryMainTitleViewHolder) holder).doDataSetting();
+        break;
+      case LINEAR_VIEW_TYPE:
+        ((FifthCategoryMainLinearViewHolder) holder).doDataSetting();
+        break;
+      default:
+        break;
+    }
+  }
+
+  @Override
+  public int getItemCount() {
+    return 5;
+  }
+
+
+  @Override
+  public int getItemViewType(int position) {
+    if (position == 0) {
+      return TITLE_VIEW_TYPE;
+    }
+    else {
+      return LINEAR_VIEW_TYPE;
+    }
+  }
+}

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

@@ -1,8 +1,11 @@
 package kr.co.zumo.app.lifeplus.view.fragment.main.category;
 
+import android.graphics.Rect;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -10,6 +13,7 @@ import android.view.ViewGroup;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
 import kr.co.zumo.app.lifeplus.model.BlankModel;
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.fragment.FragmentBase;
 import kr.co.zumo.app.lifeplus.view.presenter.main.category.FifthCategoryMainPresenter;
 
@@ -24,6 +28,9 @@ import kr.co.zumo.app.lifeplus.view.presenter.main.category.FifthCategoryMainPre
  * @since 2018-10-24
  */
 public class FifthCategoryMainFragment extends FragmentBase<FifthCategoryMainPresenter> {
+
+  private RecyclerView recyclerViewFifthCategoryMain;
+
   @Override
   protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
     return inflater.inflate(R.layout.fragment_fifth_category_main, container, false);
@@ -31,7 +38,18 @@ public class FifthCategoryMainFragment extends FragmentBase<FifthCategoryMainPre
 
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
-
+    recyclerViewFifthCategoryMain = findViewById(R.id.recycler_view_fifth_category_main);
+    FifthCategoryMainAdapter fifthCategoryMainAdapter = new FifthCategoryMainAdapter(getActivity());
+    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false);
+    recyclerViewFifthCategoryMain.setLayoutManager(linearLayoutManager );
+    recyclerViewFifthCategoryMain.addItemDecoration(new RecyclerView.ItemDecoration() {
+      @Override
+      public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+        super.getItemOffsets(outRect, view, parent, state);
+        outRect.bottom = ResourceUtil.dpToPx(20);
+      }
+    });
+    recyclerViewFifthCategoryMain.setAdapter(fifthCategoryMainAdapter);
   }
 
   @Override

+ 40 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FifthCategoryMainLinearViewHolder.java

@@ -0,0 +1,40 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import kr.co.zumo.app.R;
+
+/**
+ * FifthCategoryMainLinearViewHolder
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-24]   [최초 작성]
+ * @since 2018-10-24
+ */
+public class FifthCategoryMainLinearViewHolder extends RecyclerView.ViewHolder {
+
+  private ImageView imageViewMainFifthCategory;
+  private TextView textViewMainFifthDate;
+  private TextView textViewMainFifthTitle;
+
+  public FifthCategoryMainLinearViewHolder(View itemView) {
+    super(itemView);
+    imageViewMainFifthCategory = itemView.findViewById(R.id.image_view_main_fifth_category);
+    textViewMainFifthDate = itemView.findViewById(R.id.text_view_main_fifth_date);
+    textViewMainFifthTitle = itemView.findViewById(R.id.text_view_main_fifth_title);
+
+  }
+
+  public void doDataSetting(){
+    imageViewMainFifthCategory.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));
+    textViewMainFifthDate.setText(R.string.main_fifth_category_date);
+    textViewMainFifthTitle.setText(R.string.main_fifth_category_contents);
+
+  }
+}

+ 32 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FifthCategoryMainTitleViewHolder.java

@@ -0,0 +1,32 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+
+import kr.co.zumo.app.R;
+
+/**
+ * FifthCategoryMainTitleViewHolder
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-24]   [최초 작성]
+ * @since 2018-10-24
+ */
+public class FifthCategoryMainTitleViewHolder extends RecyclerView.ViewHolder {
+
+  private TextView textViewMainFifthCategoryTitle;
+
+  public FifthCategoryMainTitleViewHolder(View itemView) {
+    super(itemView);
+    textViewMainFifthCategoryTitle = itemView.findViewById(R.id.text_view_main_fifth_category_title);
+  }
+
+  public void doDataSetting(){
+    textViewMainFifthCategoryTitle.setText(R.string.main_fifth_category_title);
+
+  }
+}

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FourthCategoryMainAdapter.java

@@ -23,8 +23,8 @@ public class FourthCategoryMainAdapter extends RecyclerView.Adapter<RecyclerView
 
   private Context context;
   private LayoutInflater inflater;
-  public static final int LINEAR_VIEW_TYPE = 0;
-  public static final int BANNER_VIEW_TYPE = 1;
+  private static final int LINEAR_VIEW_TYPE = 0;
+  private static final int BANNER_VIEW_TYPE = 1;
 
   public FourthCategoryMainAdapter(Context context) {
     this.context = context;

+ 35 - 3
app/src/main/res/layout/fragment_fifth_category_main.xml

@@ -1,6 +1,38 @@
 <?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.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent">
+
+  <TextView
+    android:id="@+id/text_view_main_fifth_category_week"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="24dp"
+    android:layout_marginTop="23dp"
+    android:layout_marginBottom="9dp"
+    android:lineSpacingExtra="6sp"
+    android:text="9월 3주차"
+    android:textColor="@color/C000000"
+    android:textSize="14sp"
+    app:layout_constraintBottom_toTopOf="@+id/recycler_view_fifth_category_main"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent"
+    />
+
+  <android.support.v7.widget.RecyclerView
+    android:id="@+id/recycler_view_fifth_category_main"
+    android:layout_width="match_parent"
+    android:layout_height="0dp"
+    android:layout_marginStart="25dp"
+    android:layout_marginEnd="25dp"
+    android:clipToPadding="false"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintLeft_toLeftOf="parent"
+    app:layout_constraintRight_toRightOf="parent"
+    app:layout_constraintTop_toBottomOf="@id/text_view_main_fifth_category_week"
+    />
 
 </android.support.constraint.ConstraintLayout>

+ 47 - 0
app/src/main/res/layout/main_fifth_category_linear_view.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="wrap_content"
+  android:layout_height="wrap_content"
+  >
+
+  <ImageView
+    android:id="@+id/image_view_main_fifth_category"
+    android:layout_width="311dp"
+    android:layout_height="311dp"
+    android:background="@color/C333333"
+    android:scaleType="fitXY"
+    tools:src="@drawable/img_bestbucket_3"
+    />
+
+  <TextView
+    android:id="@+id/text_view_main_fifth_date"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="18dp"
+    android:layout_marginBottom="5dp"
+    android:lineSpacingExtra="4sp"
+    android:textColor="@color/CFFFFFF"
+    android:textSize="11sp"
+    app:layout_constraintBottom_toTopOf="@+id/text_view_main_fifth_title"
+    app:layout_constraintStart_toStartOf="parent"
+    tools:text="2018.09.17 ~ 2018.09.23"
+    />
+
+  <TextView
+    android:id="@+id/text_view_main_fifth_title"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="18dp"
+    android:layout_marginBottom="18dp"
+    android:lineSpacingExtra="8sp"
+    android:textColor="@color/CFFFFFF"
+    android:textSize="19sp"
+    app:layout_constraintBottom_toBottomOf="@+id/image_view_main_fifth_category"
+    app:layout_constraintStart_toStartOf="parent"
+    tools:text="9월 3주차
+뮤지컬 예매순위 TOP 10"
+    />
+</android.support.constraint.ConstraintLayout>

+ 23 - 0
app/src/main/res/layout/main_fifth_category_title_view.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="match_parent"
+  android:layout_height="wrap_content">
+  <TextView
+    android:id="@+id/text_view_main_fifth_category_title"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="9dp"
+    android:lineSpacingExtra="8sp"
+    android:textColor="@color/C000000"
+    android:textSize="21sp"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent"
+    app:layout_constraintBottom_toBottomOf="parent"
+    android:layout_marginBottom="60dp"
+    tools:text="@string/main_fifth_category_title"
+    />
+
+</android.support.constraint.ConstraintLayout>

+ 1 - 1
app/src/main/res/layout/main_fourth_category_linear_view.xml

@@ -50,7 +50,7 @@
     android:layout_width="124dp"
     android:layout_height="93dp"
     android:scaleType="fitXY"
-    android:src="@drawable/img_bestbucket_banner_5"
+    tools:src="@drawable/img_bestbucket_banner_5"
     app:layout_constraintEnd_toEndOf="parent"
     />
 </android.support.constraint.ConstraintLayout>

+ 1 - 1
app/src/main/res/layout/main_third_category_grid_view.xml

@@ -10,7 +10,7 @@
     android:id="@+id/image_view_main_third_category"
     android:layout_width="match_parent"
     android:layout_height="148dp"
-    android:src="@drawable/img_bestbucket_banner_5"
+    tools:src="@drawable/img_bestbucket_banner_5"
     android:scaleType="fitXY"
     />
 

+ 6 - 0
app/src/main/res/values/strings.xml

@@ -391,4 +391,10 @@
   <string name="main_fourth_category_example2">개미 벗어나기\n
누구나 주주가 될 수 있다?</string>
   <string name="main_fourth_category_example3">경제/비즈니스</string>
 
+  <string name="main_fifth_category_title">이번 주\n꼭 알아야 할 이야기</string>
+  <string name="main_fifth_category_date">2018.09.17 ~ 2018.09.23</string>
+  <string name="main_fifth_category_contents">9월 3주차\n뮤지컬 예매순위 TOP 10</string>
+
+
+
 </resources>