Преглед на файлове

[마이][New] 버킷리스트 페이지 구현 중

Hasemi преди 7 години
родител
ревизия
22a9125821

+ 17 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/bucketlist/BucketListFragment.java

@@ -3,6 +3,9 @@ package kr.co.zumo.app.lifeplus.view.fragment.bucketlist;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.design.widget.TabLayout;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
 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.BucketListPresenter;
 
@@ -25,6 +29,9 @@ import kr.co.zumo.app.lifeplus.view.presenter.BucketListPresenter;
  */
 public class BucketListFragment extends FragmentBase<BucketListPresenter> {
 
+  private ViewPager viewPagerBucketList;
+  private TabLayout tabLayoutBucketList;
+  private PagerAdapter pagerAdapter;
 
   @Nullable
   @Override
@@ -35,7 +42,17 @@ public class BucketListFragment extends FragmentBase<BucketListPresenter> {
 
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
+    viewPagerBucketList = (ViewPager) findViewById(R.id.view_pager_bucket_list);
+    tabLayoutBucketList = (TabLayout) findViewById(R.id.tab_layout_bucket_list);
 
+    viewPagerBucketList.setClipToPadding(false);
+    viewPagerBucketList.setPageMargin(ResourceUtil.dpToPx(13));
+
+    BucketListPagerAdapter bucketListPagerAdapter = new BucketListPagerAdapter(getActivity(), viewPagerBucketList);
+    pagerAdapter = bucketListPagerAdapter;
+
+    tabLayoutBucketList.setupWithViewPager(viewPagerBucketList, true);
+    viewPagerBucketList.setAdapter(pagerAdapter);
   }
 
   @Override

+ 99 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/bucketlist/BucketListPagerAdapter.java

@@ -0,0 +1,99 @@
+package kr.co.zumo.app.lifeplus.view.fragment.bucketlist;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import kr.co.zumo.app.R;
+
+/**
+ * BucketListPagerAdapter
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-16]   [최초 작성]
+ * @since 2018-10-16
+ */
+public class BucketListPagerAdapter extends PagerAdapter {
+
+  protected LayoutInflater layoutInflater;
+  private ViewPager viewPagerBucketList;
+  private static final int VIEW_COUNT = 5;
+  private View view;
+
+  public BucketListPagerAdapter(Context context, ViewPager viewPagerBucketList) {
+    this.layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+    this.viewPagerBucketList= viewPagerBucketList;
+  }
+
+  @Override
+  public int getCount() {
+    return VIEW_COUNT;
+  }
+
+  @Override
+  public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
+    return view == object;
+  }
+
+  @NonNull
+  @Override
+  public Object instantiateItem(@NonNull ViewGroup container, int position) {
+    view = layoutInflater.inflate(R.layout.bucket_list_card_view, container,  false);
+    TextView textViewBucketListTitle = (TextView) view.findViewById(R.id.text_view_bucket_list_title);
+    ImageView imageViewShowBucketList = (ImageView)view.findViewById(R.id.image_show_bucket_list);
+
+    switch (position) {
+      case 0:
+        imageViewShowBucketList.setImageResource(R.drawable.img_bestbucket_1);
+        textViewBucketListTitle.setText(R.string.bucket_list_best_example1);
+        break;
+      case 1:
+        imageViewShowBucketList.setImageResource(R.drawable.img_bestbucket_2);
+        textViewBucketListTitle.setText(R.string.bucket_list_best_example2);
+        break;
+      case 2:
+        imageViewShowBucketList.setImageResource(R.drawable.img_bestbucket_3);
+        textViewBucketListTitle.setText(R.string.bucket_list_best_example3);
+        break;
+      case 3:
+        imageViewShowBucketList.setImageResource(R.drawable.img_bestbucket_4);
+        textViewBucketListTitle.setText(R.string.bucket_list_best_example4);
+        break;
+      case 4:
+        imageViewShowBucketList.setImageResource(R.drawable.img_bestbucket_5);
+        textViewBucketListTitle.setText(R.string.bucket_list_best_example5);
+        break;
+      default:
+        break;
+
+    }
+    container.addView(view);
+
+
+    return view;
+  }
+
+  @Override
+  public float getPageWidth(int position) {
+    return 0.9f;
+  }
+
+  @Override
+  public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
+    container.removeView((View) object);
+  }
+
+  @Override
+  public int getItemPosition(@NonNull Object object) {
+    return POSITION_NONE;
+  }
+}

+ 7 - 46
app/src/main/res/layout/bucket_list_card_view.xml

@@ -2,8 +2,11 @@
 <RelativeLayout
   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"
+  android:layout_marginStart="25dp"
+  android:layout_marginEnd="25dp"
   >
 
   <ImageView
@@ -12,11 +15,11 @@
     android:layout_height="match_parent"
     android:layout_alignParentBottom="true"
     android:layout_centerHorizontal="true"
-    android:layout_marginTop="30dp"
-    android:layout_marginBottom="35dp"
-    app:srcCompat="@drawable/img_bestbucket_1"/>
+    android:scaleType="fitXY"
+    tools:srcCompat="@drawable/img_bestbucket_1"/>
 
   <TextView
+    android:id="@+id/text_view_bucket_list_rank"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_above="@+id/text_view_bucket_list_title"
@@ -35,7 +38,7 @@
     android:layout_height="wrap_content"
     android:layout_centerInParent="true"
     android:lineSpacingExtra="10sp"
-    android:text="@string/bucket_list_best_example1"
+    tools:text="@string/bucket_list_best_example1"
     android:textAlignment="center"
     android:textColor="@color/CFFFFFF"
     android:textSize="25sp"/>
@@ -49,47 +52,5 @@
     android:layout_marginTop="13dp"
     app:srcCompat="@drawable/icon_plus"/>
 
-  <android.support.design.widget.TabLayout
-    android:id="@+id/tutorial_tab_layout"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:layout_alignParentStart="true"
-    android:layout_alignParentTop="true"
-    android:layout_marginStart="0dp"
-    android:layout_marginTop="513dp"
-    app:tabBackground="@drawable/tab_selector"
-    app:tabGravity="center"
-    app:tabIndicatorHeight="0dp"/>
 
-  <ImageView
-    android:id="@+id/image_view_text_balloon"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_alignParentEnd="true"
-    android:layout_alignParentBottom="true"
-    android:layout_marginEnd="73dp"
-    android:layout_marginBottom="22dp"
-    app:srcCompat="@drawable/ic_textballoon_shape"/>
-
-  <ImageView
-    android:id="@+id/image_view_floating_plus"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_alignParentEnd="true"
-    android:layout_alignParentBottom="true"
-    android:layout_marginEnd="22dp"
-    android:layout_marginBottom="22dp"
-    app:srcCompat="@drawable/icon_floating_plus"/>
-
-  <TextView
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_alignParentEnd="true"
-    android:layout_alignParentBottom="true"
-    android:layout_marginEnd="96dp"
-    android:layout_marginBottom="29dp"
-    android:lineSpacingExtra="4sp"
-    android:text="@string/bucket_list_write"
-    android:textColor="@color/CD0D0D0"
-    android:textSize="10.5sp"/>
 </RelativeLayout>

+ 57 - 82
app/src/main/res/layout/fragment_bucket_list.xml

@@ -1,95 +1,70 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout
+<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   >
 
-  <ImageView
-    android:id="@+id/image_show_bucket_list"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_alignParentBottom="true"
-    android:layout_centerHorizontal="true"
-    android:layout_marginTop="30dp"
-    android:layout_marginBottom="35dp"
-    app:srcCompat="@drawable/img_bestbucket_1"/>
-
-  <TextView
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_above="@+id/text_view_bucket_list_title"
-    android:layout_alignParentTop="true"
-    android:layout_centerHorizontal="true"
-    android:layout_marginTop="231dp"
-    android:layout_marginBottom="5dp"
-    android:lineSpacingExtra="6sp"
-    android:text="@string/bucket_list_best"
-    android:textColor="@color/CFFFFFF"
-    android:textSize="14sp"/>
 
-  <TextView
-    android:id="@+id/text_view_bucket_list_title"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_centerInParent="true"
-    android:lineSpacingExtra="10sp"
-    android:text="@string/bucket_list_best_example1"
-    android:textAlignment="center"
-    android:textColor="@color/CFFFFFF"
-    android:textSize="25sp"/>
+  <RelativeLayout
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
 
-  <ImageView
-    android:id="@+id/button_show_bucket_list"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_below="@+id/text_view_bucket_list_title"
-    android:layout_centerHorizontal="true"
-    android:layout_marginTop="13dp"
-    app:srcCompat="@drawable/icon_plus"/>
+    <android.support.v4.view.ViewPager
+      android:id="@+id/view_pager_bucket_list"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:layout_alignParentStart="true"
+      android:layout_alignParentBottom="true"
+      android:layout_marginTop="30dp"
+      android:layout_marginBottom="35dp"
+      android:paddingLeft="25dp"
+      android:paddingRight="25dp"
+      app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
 
-  <android.support.design.widget.TabLayout
-    android:id="@+id/tutorial_tab_layout"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:layout_alignParentStart="true"
-    android:layout_alignParentTop="true"
-    android:layout_marginStart="0dp"
-    android:layout_marginTop="513dp"
-    app:tabBackground="@drawable/tab_selector"
-    app:tabGravity="center"
-    app:tabIndicatorHeight="0dp"/>
+    <android.support.design.widget.TabLayout
+      android:id="@+id/tab_layout_bucket_list"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_alignParentStart="true"
+      android:layout_alignParentBottom="true"
+      android:layout_marginBottom="35dp"
+      app:tabBackground="@drawable/tab_selector"
+      app:tabGravity="center"
+      app:tabIndicatorHeight="0dp"
+      />
 
-  <ImageView
-    android:id="@+id/image_view_text_balloon"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_alignParentEnd="true"
-    android:layout_alignParentBottom="true"
-    android:layout_marginEnd="73dp"
-    android:layout_marginBottom="22dp"
-    app:srcCompat="@drawable/ic_textballoon_shape"/>
+    <ImageView
+      android:id="@+id/image_view_text_balloon"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_alignParentEnd="true"
+      android:layout_alignParentBottom="true"
+      android:layout_marginEnd="73dp"
+      android:layout_marginBottom="22dp"
+      app:srcCompat="@drawable/ic_textballoon_shape"/>
 
-  <ImageView
-    android:id="@+id/image_view_floating_plus"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_alignParentEnd="true"
-    android:layout_alignParentBottom="true"
-    android:layout_marginEnd="22dp"
-    android:layout_marginBottom="22dp"
-    app:srcCompat="@drawable/icon_floating_plus"/>
+    <ImageView
+      android:id="@+id/image_view_floating_plus"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_alignParentEnd="true"
+      android:layout_alignParentBottom="true"
+      android:layout_marginEnd="22dp"
+      android:layout_marginBottom="22dp"
+      app:srcCompat="@drawable/icon_floating_plus"/>
 
-  <TextView
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_alignParentEnd="true"
-    android:layout_alignParentBottom="true"
-    android:layout_marginEnd="96dp"
-    android:layout_marginBottom="29dp"
-    android:lineSpacingExtra="4sp"
-    android:text="@string/bucket_list_write"
-    android:textColor="@color/CD0D0D0"
-    android:textSize="10.5sp"/>
-</RelativeLayout>
+    <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_alignParentEnd="true"
+      android:layout_alignParentBottom="true"
+      android:layout_marginEnd="96dp"
+      android:layout_marginBottom="29dp"
+      android:lineSpacingExtra="4sp"
+      android:text="@string/bucket_list_write"
+      android:textColor="@color/CD0D0D0"
+      android:textSize="11sp"/>
+  </RelativeLayout>
+</LinearLayout>

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

@@ -333,6 +333,11 @@
 
   <string name="bucket_list_best">Bucket List Best 5</string>
   <string name="bucket_list_best_example1">유럽으로\n배낭 여행가기</string>
+  <string name="bucket_list_best_example2">나를 위한\n선물, 명품 구매하기</string>
+  <string name="bucket_list_best_example4">캐나다에서\n오로라 보기</string>
+  <string name="bucket_list_best_example3">미슐랭 3스타\n레스토랑 찾아가기</string>
+  <string name="bucket_list_best_example5">내차\n구매하기</string>
+
   <string name="bucket_list_write">끄적끄적! 나만의\n버킷리스트 작성</string>
 
   <string name="bucket_list">버킷리스트</string>