Kaynağa Gözat

新的打卡战绩界面完成

zengjiebin 7 yıl önce
ebeveyn
işleme
cf4b6129f7

+ 1 - 0
app/build.gradle

@@ -271,6 +271,7 @@ dependencies {
 //    compile 'com.github.nanchen2251:CompressHelper:1.0.5'
 //    compile(name: 'compresshelper-release', ext: 'aar')
     compile files('libs/compresshelper-release.jar')
+    compile 'com.haibin:calendarview:3.4.4'
 }
 
 static def releaseTime() {

+ 5 - 0
app/proguard-rules.pro

@@ -453,4 +453,9 @@
 # banner 的混淆代码
 -keep class com.youth.banner.** {
     *;
+ }
+
+#==================compile 'com.haibin:calendarview:3.4.4'==========================
+ -keepclasseswithmembers class * {
+     public <init>(android.content.Context);
  }

+ 3 - 0
app/src/main/AndroidManifest.xml

@@ -362,6 +362,9 @@
             android:name="com.sheep.gamegroup.view.activity.ActSignCard"
             android:screenOrientation="portrait" />
         <activity
+            android:name="com.sheep.gamegroup.view.activity.ActSignCardRecord"
+            android:screenOrientation="portrait" />
+        <activity
             android:name="com.sheep.gamegroup.view.activity.SignCardAct"
             android:screenOrientation="portrait" />
         <activity

+ 0 - 1
app/src/main/java/com/kfzs/duanduan/view/ViewPagerAutoHeigh.java

@@ -47,7 +47,6 @@ public class ViewPagerAutoHeigh extends ViewPager {
             child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
             int h = child.getMeasuredHeight();
             mHeight[i] = h < 300 ? 300:h;
-            Log.e("-----------child" + i, "minHeight:" + h);
         }
         heightMeasureSpec = MeasureSpec.makeMeasureSpec(mHeight[getCurrentItem()], MeasureSpec.EXACTLY);
 //        Log.e("-----------onMeasure", mChildrenHeight.get(current) + ",minHeight:" + mIntHeight);

+ 6 - 2
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -485,7 +485,11 @@ public class CommonUtil {
                 Jump2View.getInstance().goXiaomiGameList((Activity) context, null);
                 break;
             default:
-                G.showToast(R.string.coming_soon);
+                String url = entity.getUrl();
+                if(TextUtils.isEmpty(url))
+                    G.showToast(R.string.coming_soon);
+                else//有链接直接跳转内部h5
+                    Jump2View.getInstance().goWeb(context, entity.getUrl(), entity.getTitle());
                 break;
 
         }
@@ -845,7 +849,7 @@ public class CommonUtil {
         ListUtil.addAll(homeList, ListUtil.removeItem(allList, new ListUtil.CallBack<HomeListEntity, Boolean>() {
             @Override
             public Boolean call(HomeListEntity item) {
-                boolean result = "1024".equals(item.getDesc());
+                boolean result = "1024".equals(item.getDesc()) || "17".equals(item.getJump());//描述为1024或者jump为17的跳转超维对决
                 if(result){
                     fullHomeList.add(item);
                 }

+ 4 - 4
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -60,6 +60,8 @@ import com.sheep.gamegroup.view.activity.ActPlayGameDetail;
 import com.sheep.gamegroup.view.activity.ActReservation;
 import com.sheep.gamegroup.view.activity.ActSearchGame;
 import com.sheep.gamegroup.view.activity.ActSetting;
+import com.sheep.gamegroup.view.activity.ActSignCard;
+import com.sheep.gamegroup.view.activity.ActSignCardRecord;
 import com.sheep.gamegroup.view.activity.ActUnderstandSheep;
 import com.sheep.gamegroup.view.activity.ActUserLabelList;
 import com.sheep.gamegroup.view.activity.ActWeb;
@@ -83,10 +85,8 @@ import com.sheep.gamegroup.view.activity.RealNameAuthenAct;
 import com.sheep.gamegroup.view.activity.RechargeAct;
 import com.sheep.gamegroup.view.activity.RechargeQAct;
 import com.sheep.gamegroup.view.activity.RechargeResultAct;
-import com.sheep.gamegroup.view.activity.ActSignCard;
 import com.sheep.gamegroup.view.activity.SignRankingsAct;
 import com.sheep.gamegroup.view.activity.SignRechargeAct;
-import com.sheep.gamegroup.view.activity.SignRecordAct;
 import com.sheep.gamegroup.view.activity.TaskDetailAct;
 import com.sheep.gamegroup.view.activity.TaskDetailAddQQAct;
 import com.sheep.gamegroup.view.activity.TaskDetailCreditCardAct;
@@ -803,7 +803,7 @@ public class Jump2View {
         }
         Intent intent = new Intent(context, ActWeb.class);
         intent.putExtra("url", url);
-        intent.putExtra("title", title);
+        intent.putExtra("title", TextUtils.isEmpty(title) ? "加载中..." : title);
         context.startActivity(intent);
     }
     /**
@@ -1155,7 +1155,7 @@ public class Jump2View {
      * @param o
      */
     public void goSignRecordAct(Context context, Object o){
-        Intent intent = new Intent(context, SignRecordAct.class);
+        Intent intent = new Intent(context, ActSignCardRecord.class);
         context.startActivity(intent);
         UMConfigUtils.Event.PUNCH_RECORD.onEvent();
     }

+ 138 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActSignCardRecord.java

@@ -0,0 +1,138 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.graphics.Color;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+
+import com.haibin.calendarview.Calendar;
+import com.haibin.calendarview.CalendarView;
+import com.kfzs.appstore.utils.adapter.recyclerview.RecyclerViewAdapter;
+import com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder;
+import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.PunchLogEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import butterknife.BindView;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by realicing on 2018/9/11.
+ * realicing@sina.com
+ */
+public class ActSignCardRecord extends BaseActivity {
+    @BindView(R.id.sign_card_record_rv)
+    RecyclerView recyclerView;
+    @BindView(R.id.sign_card_record_cv)
+    CalendarView sign_card_record_cv;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.act_sign_card_record;
+    }
+
+    private ActSignCardRecord activity;
+
+    @Override
+    public void initView() {
+        activity = this;
+        TitleBarUtils
+                .getInstance()
+                .setTitle(activity, "我的战绩")
+                .setTitleFinish(activity)
+                .setRightImgBotton(activity, R.drawable.sign_right_record_bg, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Jump2View.getInstance().goSignRankingsAct(activity, null);
+                    }
+                });
+    }
+
+    RecyclerViewAdapter<PunchLogEntity> adapter;
+
+    @Override
+    public void initListener() {
+        adapter = new RecyclerViewAdapter<PunchLogEntity>(SheepApp.getInstance(), R.layout.item_sign_card_record, list) {
+            @Override
+            public void convert(ViewHolder viewHolder, PunchLogEntity item, int position) {
+                TextView sign_card_record_date = (TextView)viewHolder.itemView.findViewById(R.id.sign_card_record_date);
+                TextView sign_card_record_time = (TextView)viewHolder.itemView.findViewById(R.id.sign_card_record_time);
+                TextView sign_card_record_bonus = (TextView)viewHolder.itemView.findViewById(R.id.sign_card_record_bonus);
+                ViewUtil.setTextTime(sign_card_record_date, item.getCreateTime(), "yyyy/MM/dd");
+                ViewUtil.setTextTime(sign_card_record_time, item.getCreateTime(), "HH:mm");
+                ViewUtil.setText(sign_card_record_bonus, item.getAmount()+"元");
+            }
+        };
+        recyclerView.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        recyclerView.setNestedScrollingEnabled(false);
+        recyclerView.setAdapter(adapter);
+    }
+    private Calendar getSchemeCalendar(int year, int month, int day) {
+        Calendar calendar = new Calendar();
+        calendar.setYear(year);
+        calendar.setMonth(month);
+        calendar.setDay(day);
+        calendar.setSchemeColor(Color.parseColor("#FD2D54"));
+        return calendar;
+    }
+
+    private List<PunchLogEntity> list = ListUtil.emptyList();
+
+    @Override
+    public void initData() {
+        initLogList(1);
+        initLogList(2);
+        initLogList(3);
+    }
+
+    private void initLogList(final int action) {
+        SheepApp.getInstance().getNetComponent().getApiService().getPunchLog(action)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        List<PunchLogEntity> newList = baseMessage.getDatas(PunchLogEntity.class);
+                        ListUtil.addAll(list, newList);
+                        adapter.notifyDataSetChanged();
+                        if(action == 1)
+                            updateCalendarSchemeDate(newList);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                    }
+                });
+    }
+
+    /**
+     * 标记日期时间
+     */
+    private void updateCalendarSchemeDate(List<PunchLogEntity> newList) {
+        int year = sign_card_record_cv.getCurYear();
+        int month = sign_card_record_cv.getCurMonth();
+        Map<String, Calendar> map = new HashMap<>();
+        for (PunchLogEntity item : newList) {
+            java.util.Calendar date = java.util.Calendar.getInstance(Locale.CHINA);
+            date.setTimeInMillis(item.getCreateTime()*1000);
+            Calendar calendar = getSchemeCalendar(year, month, date.get(java.util.Calendar.DAY_OF_MONTH));
+            map.put(calendar.toString(), calendar);
+        }
+        sign_card_record_cv.setSchemeDate(map);
+    }
+}

+ 0 - 17
app/src/main/java/com/sheep/gamegroup/view/activity/SignRankingsAct.java

@@ -3,7 +3,6 @@ package com.sheep.gamegroup.view.activity;
 import android.app.Activity;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
-import android.view.View;
 
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.util.CommonUtil;
@@ -14,7 +13,6 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import butterknife.BindView;
-import butterknife.OnClick;
 
 /**
  * 本月排行榜
@@ -84,21 +82,6 @@ public class SignRankingsAct extends BaseActivity {
     }
 
 
-    @OnClick({R.id.sign_rl_ljdl, R.id.sign_rl_lxdl})
-    public void onViewClicked(View view) {
-        switch (view.getId()) {
-            case R.id.sign_rl_ljdl:
-                signViewPager.setCurrentItem(0);
-                selectLeft();
-
-                break;
-            case R.id.sign_rl_lxdl:
-                signViewPager.setCurrentItem(1);
-                selectRight();
-                break;
-        }
-    }
-
     private void selectLeft() {
         UMConfigUtils.Event.PUNCH_ACCUMULATIVE_LIST.onEvent();
     }

+ 114 - 0
app/src/main/java/com/sheep/gamegroup/view/customview/CalendarMonthView.java

@@ -0,0 +1,114 @@
+package com.sheep.gamegroup.view.customview;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.text.TextUtils;
+
+import com.haibin.calendarview.Calendar;
+import com.haibin.calendarview.MonthView;
+
+/**
+ * Created by realicing on 2018/9/12.
+ * realicing@sina.com
+ */
+public class CalendarMonthView extends MonthView {
+
+    private Paint mTextPaint = new Paint();
+    private Paint mCurDayPaint = new Paint();
+    private Paint mSolarTermTextPaint = new Paint();
+    private Paint mSchemeBasicPaint = new Paint();
+    private int mPadding;
+//    private float mRadio;
+//    private float mSchemeBaseLine;
+
+    public CalendarMonthView(Context context) {
+        super(context);
+        this.mTextPaint.setTextSize((float) dipToPx(context, 8.0F));
+        this.mTextPaint.setColor(-1);
+        this.mTextPaint.setAntiAlias(true);
+        this.mTextPaint.setFakeBoldText(true);
+        this.mSchemeBasicPaint.setAntiAlias(true);
+        this.mSchemeBasicPaint.setStyle(Paint.Style.FILL);
+        this.mSchemeBasicPaint.setTextAlign(Paint.Align.CENTER);
+        this.mSchemeBasicPaint.setFakeBoldText(true);
+        this.mCurDayPaint.setAntiAlias(true);
+        this.mCurDayPaint.setStyle(Paint.Style.FILL);
+        this.mCurDayPaint.setTextAlign(Paint.Align.CENTER);
+        this.mCurDayPaint.setColor(Color.parseColor("#4889FF"));
+        this.mCurDayPaint.setFakeBoldText(true);
+        this.mSolarTermTextPaint.setTextAlign(Paint.Align.CENTER);
+        this.mSolarTermTextPaint.setColor(Color.parseColor("#4889FF"));
+        this.mSolarTermTextPaint.setTextSize(mCurMonthTextPaint.getTextSize());
+        this.mPadding = 0;//dipToPx(this.getContext(), 4.0F);
+//        this.mRadio = (float) dipToPx(this.getContext(), 7.0F);
+//        Paint.FontMetrics metrics = this.mSchemeBasicPaint.getFontMetrics();
+//        this.mSchemeBaseLine = this.mRadio - metrics.descent + (metrics.bottom - metrics.top) / 2.0F + (float) dipToPx(this.getContext(), 1.0F);
+    }
+
+    protected boolean onDrawSelected(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme) {
+//        if (!calendar.isCurrentDay()) {
+//            this.mSelectedPaint.setStyle(Paint.Style.FILL);
+//            canvas.drawRect((float) (x + this.mPadding), (float) (y + this.mPadding), (float) (x + this.mItemWidth - this.mPadding), (float) (y + this.mItemHeight - this.mPadding), this.mSelectedPaint);
+//        }
+        return true;
+    }
+
+    protected void onDrawScheme(Canvas canvas, Calendar calendar, int x, int y) {
+        this.mSchemeBasicPaint.setColor(calendar.getSchemeColor());
+        canvas.drawRect((float) (x + this.mPadding), (float) (y + this.mPadding), (float) (x + this.mItemWidth - this.mPadding), (float) (y + this.mItemHeight - this.mPadding), this.mSchemeBasicPaint);
+//        canvas.drawRoundRect((float) (x + this.mPadding), (float) (y + this.mPadding), (float) (x + this.mItemWidth - this.mPadding), (float) (y + this.mItemHeight - this.mPadding), this.mSchemeBasicPaint);
+//        canvas.drawText(calendar.getScheme(), (float) (x + this.mItemWidth - this.mPadding) - this.mRadio / 2.0F - this.getTextWidth(calendar.getScheme()) / 2.0F, (float) (y + this.mPadding) + this.mSchemeBaseLine, this.mTextPaint);
+    }
+
+    private float getTextWidth(String text) {
+        return this.mTextPaint.measureText(text);
+    }
+
+    protected void onDrawText(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme, boolean isSelected) {
+        int cx = x + this.mItemWidth / 2;
+        int top = y - this.mItemHeight / 6;
+        boolean isCurrentDay = calendar.isCurrentDay();
+        if (isCurrentDay) {
+            onDrawCurDay(canvas, calendar, x, y, hasScheme);
+        }
+        /*if (isSelected && !isCurrentDay) {
+            canvas.drawText(String.valueOf(calendar.getDay()), (float) cx, this.mTextBaseLine + (float) top, this.mSelectTextPaint);
+            canvas.drawText(calendar.getLunar(), (float) cx, this.mTextBaseLine + (float) y + (float) (this.mItemHeight / 10), this.mSelectedLunarTextPaint);
+        } else */
+        Paint textPaint = this.mCurMonthTextPaint;
+        Paint lunarTextPaint = this.mCurMonthLunarTextPaint;
+        if(calendar.isCurrentDay()){//当天
+            textPaint = this.mCurDayTextPaint;
+            lunarTextPaint = this.mCurDayLunarTextPaint;
+        } else if(hasScheme){//标记的
+            textPaint = this.mSchemeTextPaint;
+            lunarTextPaint = this.mSchemeLunarTextPaint;
+        } else if(!TextUtils.isEmpty(calendar.getSolarTerm())){//农历节庆
+            textPaint = this.mSolarTermTextPaint;
+            lunarTextPaint = this.mSolarTermTextPaint;
+        }
+        canvas.drawText(String.valueOf(calendar.getDay()), (float) cx, this.mTextBaseLine + (float) top, textPaint);
+        canvas.drawText(calendar.getLunar(), (float) cx, this.mTextBaseLine + (float) y + (float) (this.mItemHeight / 10), lunarTextPaint);
+
+    }
+
+    //画当天背景
+    protected void onDrawCurDay(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme) {
+        this.mCurDayPaint.setStyle(Paint.Style.FILL);
+        canvas.drawCircle((float) (x + this.mItemWidth / 2.0F), (float) (y - this.mPadding + this.mItemWidth / 2.0F), this.mItemWidth * 2 / 5, this.mCurDayPaint);
+    }
+
+    /**
+     * dp转px
+     *
+     * @param context context
+     * @param dpValue dp
+     * @return px
+     */
+    static int dipToPx(Context context, float dpValue) {
+        final float scale = context.getResources().getDisplayMetrics().density;
+        return (int) (dpValue * scale + 0.5f);
+    }
+}

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSignRankings.java

@@ -153,7 +153,7 @@ public class FgtSignRankings extends BaseFragment implements SignRankingsContrac
                             sign_tv_mc.setText(String.format(Locale.CHINA, "%s", position + 1));
                             break;
                     }
-                    sign_tv_bonus.setText(NumberFormatUtils.retainMost2(item.getTotalBonus()));
+                    sign_tv_bonus.setText(String.format(Locale.CHINA, "%s元", NumberFormatUtils.retainMost2(item.getTotalBonus())));
                     sign_tv_name.setText(item.getNick_name());
                     sign_tv_pm.setText(item.getNum());
                 }

+ 8 - 0
app/src/main/res/drawable/shape_oval_blue_8.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <size
+        android:width="8dp"
+        android:height="8dp" />
+    <solid android:color="#4889FF" />
+</shape>

+ 8 - 0
app/src/main/res/drawable/shape_oval_red_8.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <size
+        android:width="8dp"
+        android:height="8dp" />
+    <solid android:color="#FD2D54" />
+</shape>

+ 193 - 0
app/src/main/res/layout/act_sign_card_record.xml

@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="utf-8"?>
+<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"
+    android:background="@color/white"
+    android:orientation="vertical">
+
+    <include layout="@layout/title" />
+
+    <android.support.v4.widget.NestedScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <com.haibin.calendarview.CalendarView
+                android:id="@+id/sign_card_record_cv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="#FFE866"
+                app:month_view="com.sheep.gamegroup.view.customview.CalendarMonthView"
+                app:week_bar_view="com.haibin.calendarview.WeekBar"
+                app:calendar_height="46dp"
+                app:current_day_text_color="#ffffff"
+                app:current_day_lunar_text_color="#ffffff"
+                app:current_month_text_color="#333333"
+                app:current_month_lunar_text_color="#999999"
+                app:day_text_size="12sp"
+                app:lunar_text_size="12sp"
+                app:min_year="2018"
+                app:scheme_month_text_color="#ffffff"
+                app:scheme_lunar_text_color="#ffffff"
+                app:month_view_scrollable="false"
+                app:week_background="#FFE866"
+                app:week_start_with="mon"
+                app:month_view_show_mode="mode_only_current"
+                app:week_text_color="#111" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="40dp"
+                android:orientation="horizontal"
+                android:background="#FFE866">
+                <View
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="2"/>
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="当前日期"
+                    android:textColor="@color/black_666666"
+                    android:textSize="9sp"
+                    android:drawablePadding="7dp"
+                    android:drawableStart="@drawable/shape_oval_blue_8"/>
+                <View
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1"/>
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="成功打卡"
+                    android:textColor="@color/black_666666"
+                    android:textSize="9sp"
+                    android:drawablePadding="7dp"
+                    android:drawableStart="@drawable/shape_oval_red_8"/>
+                <View
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="2"/>
+            </LinearLayout>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="50dp"
+                android:gravity="center_vertical"
+                android:paddingEnd="16dp"
+                android:paddingStart="16dp"
+                android:text="打卡统计"
+                android:textColor="#ff333333"
+                android:textSize="14sp" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="累计赚取"
+                    android:textColor="#ff333333"
+                    android:textSize="13sp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="累计投入"
+                    android:textColor="#ff333333"
+                    android:textSize="13sp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="成功打卡"
+                    android:textColor="#ff333333"
+                    android:textSize="13sp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="连续打卡"
+                    android:textColor="#ff333333"
+                    android:textSize="13sp" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="2dp"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="4379人"
+                    android:textColor="#FD2D54"
+                    android:textSize="13sp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="1238人"
+                    android:textColor="#2EBEF2"
+                    android:textSize="13sp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="5617人"
+                    android:textColor="#FD8C1E"
+                    android:textSize="13sp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="5617人"
+                    android:textColor="#00BC3E"
+                    android:textSize="13sp" />
+            </LinearLayout>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="50dp"
+                android:gravity="center_vertical"
+                android:paddingEnd="16dp"
+                android:paddingStart="16dp"
+                android:text="打卡记录"
+                android:textColor="#ff333333"
+                android:textSize="14sp" />
+
+            <include layout="@layout/item_sign_card_record_title" />
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/sign_card_record_rv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+        </LinearLayout>
+    </android.support.v4.widget.NestedScrollView>
+</LinearLayout>

+ 12 - 4
app/src/main/res/layout/fgt_sign_rankings.xml

@@ -47,7 +47,7 @@
             <TextView
                 android:layout_width="0.0dp"
                 android:layout_height="match_parent"
-                android:layout_weight="1"
+                android:layout_weight="2"
                 android:gravity="center"
                 android:text="排名"
                 android:textColor="#282828"
@@ -55,7 +55,7 @@
             <TextView
                 android:layout_width="0.0dp"
                 android:layout_height="match_parent"
-                android:layout_weight="2"
+                android:layout_weight="3"
                 android:gravity="center_vertical"
                 android:paddingLeft="@dimen/content_padding_10"
                 android:text="用户名称"
@@ -65,9 +65,17 @@
             <TextView
                 android:layout_width="0.0dp"
                 android:layout_height="match_parent"
-                android:layout_weight="1"
+                android:layout_weight="2"
+                android:gravity="center"
+                android:text="打卡天数"
+                android:textColor="#282828"
+                android:textSize="@dimen/text_size_12" />
+            <TextView
+                android:layout_width="0.0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="2"
                 android:gravity="center"
-                android:text="天数"
+                android:text="累计奖励"
                 android:textColor="#282828"
                 android:textSize="@dimen/text_size_12" />
         </LinearLayout>

+ 37 - 0
app/src/main/res/layout/item_sign_card_record.xml

@@ -0,0 +1,37 @@
+<?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="40dp"
+    android:gravity="center_vertical">
+
+    <TextView
+        android:id="@+id/sign_card_record_date"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="center"
+        android:text="2018/08/01"
+        android:textColor="@color/black_666666"
+        android:textSize="12sp" />
+
+    <TextView
+        android:id="@+id/sign_card_record_time"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="center"
+        android:text="07:03"
+        android:textColor="@color/black_666666"
+        android:textSize="12sp" />
+
+    <TextView
+        android:id="@+id/sign_card_record_bonus"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="center"
+        android:text="1.4元"
+        android:textColor="@color/black_666666"
+        android:textSize="12sp" />
+
+</LinearLayout>

+ 34 - 0
app/src/main/res/layout/item_sign_card_record_title.xml

@@ -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="40dp"
+    android:gravity="center_vertical">
+
+    <TextView
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="center"
+        android:text="打卡日期"
+        android:textColor="@color/black_333333"
+        android:textSize="13sp" />
+
+    <TextView
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="center"
+        android:text="打卡时间"
+        android:textColor="@color/black_333333"
+        android:textSize="13sp" />
+
+    <TextView
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="center"
+        android:text="获取奖金"
+        android:textColor="@color/black_333333"
+        android:textSize="13sp" />
+
+</LinearLayout>