Browse Source

个人页面开发完成

huyuguo 5 years ago
parent
commit
98bcbd4431

+ 17 - 6
app/src/main/java/com/electric/chargingpile/activity/UserPageActivity.java

@ -9,7 +9,6 @@ import android.os.Bundle;
9 9
import android.support.v7.widget.RecyclerView;
10 10
import android.support.v7.widget.StaggeredGridLayoutManager;
11 11
import android.text.TextUtils;
12
import android.util.Log;
13 12
import android.view.View;
14 13
import android.widget.ImageView;
15 14
import android.widget.RelativeLayout;
@ -22,12 +21,11 @@ import com.electric.chargingpile.adapter.TopicDetailAdapter;
22 21
import com.electric.chargingpile.adapter.UserPageAdapter;
23 22
import com.electric.chargingpile.application.MainApplication;
24 23
import com.electric.chargingpile.data.UserHomePageBean;
25
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
24
import com.electric.chargingpile.data.UserPageBeanLab;
26 25
import com.electric.chargingpile.util.CommonParams;
27 26
import com.electric.chargingpile.util.JsonUtils;
28 27
import com.electric.chargingpile.util.LoadingDialog;
29 28
import com.electric.chargingpile.util.NetUtil;
30
import com.electric.chargingpile.util.OkHttpUtil;
31 29
import com.electric.chargingpile.util.ToastUtil;
32 30
import com.squareup.picasso.Picasso;
33 31
import com.squareup.picasso.Target;
@ -61,6 +59,7 @@ public class UserPageActivity extends AppCompatActivity implements View.OnClickL
61 59
    private StaggeredGridLayoutManager staggeredGridLayoutManager;
62 60
    private UserPageAdapter userPageAdapter;
63 61
    private ConstraintLayout zeroTopicNum;
62
    private TextView topicNum;
64 63
65 64
66 65
    @Override
@ -72,6 +71,8 @@ public class UserPageActivity extends AppCompatActivity implements View.OnClickL
72 71
    }
73 72
74 73
    private void initView() {
74
        UserPageBeanLab.get(UserPageActivity.this).clear();
75
75 76
        loadingDialog = new LoadingDialog(UserPageActivity.this);
76 77
        loadingDialog.setCanceledOnTouchOutside(false);
77 78
@ -83,6 +84,7 @@ public class UserPageActivity extends AppCompatActivity implements View.OnClickL
83 84
        }
84 85
        userHead = findViewById(R.id.userHead);
85 86
        userEdit = findViewById(R.id.userEdit);
87
        topicNum = findViewById(R.id.topicNum);
86 88
        nickName = findViewById(R.id.nickName);
87 89
        carName = findViewById(R.id.carName);
88 90
        if (fromUserCenter) {
@ -180,9 +182,14 @@ public class UserPageActivity extends AppCompatActivity implements View.OnClickL
180 182
                }
181 183
                break;
182 184
            case R.id.noNetTry:
183
                page = 1;
184
                loadingDialog.show();
185
                requestData();
185
                if (NetUtil.CheckNetwork(UserPageActivity.this)) {
186
                    noNetView.setVisibility(View.GONE);
187
                    page = 1;
188
                    loadingDialog.show();
189
                    requestData();
190
                } else {
191
                    noNetView.setVisibility(View.VISIBLE);
192
                }
186 193
                break;
187 194
            case R.id.userEdit:
188 195
                MobclickAgent.onEvent(getApplicationContext(), "0802");
@ -236,6 +243,7 @@ public class UserPageActivity extends AppCompatActivity implements View.OnClickL
236 243
                        updateTopView();
237 244
                        if (userHomePageBean.list.size() == 0) {
238 245
                            zeroTopicNum.setVisibility(View.VISIBLE);
246
                            xRefreshView.setLoadComplete(true);
239 247
                        } else {
240 248
                            zeroTopicNum.setVisibility(View.GONE);
241 249
                            userPageAdapter.setContentData(userHomePageBean.list);
@ -247,6 +255,7 @@ public class UserPageActivity extends AppCompatActivity implements View.OnClickL
247 255
                            userPageAdapter.setFooterData(true);
248 256
                        } else {
249 257
                            userPageAdapter.addContentData(userHomePageBean.list);
258
                            userPageAdapter.setFooterData(false);
250 259
                        }
251 260
                    }
252 261
                } else {
@ -285,5 +294,7 @@ public class UserPageActivity extends AppCompatActivity implements View.OnClickL
285 294
        } else {
286 295
            carName.setText(userVo.carName);
287 296
        }
297
298
        topicNum.setText(userVo.topicNums);
288 299
    }
289 300
}

+ 15 - 11
app/src/main/java/com/electric/chargingpile/adapter/TopicDetailAdapter.java

@ -33,8 +33,6 @@ import com.squareup.picasso.Picasso;
33 33
import com.zhy.http.okhttp.OkHttpUtils;
34 34
import com.zhy.http.okhttp.callback.StringCallback;
35 35
36
import org.w3c.dom.Text;
37
38 36
import java.util.ArrayList;
39 37
import java.util.HashMap;
40 38
import java.util.List;
@ -432,15 +430,21 @@ public class TopicDetailAdapter extends RecyclerView.Adapter<IViewHolder> {
432 430
        @Override
433 431
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
434 432
            layoutParams = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams();
435
            int position = parent.getChildAdapterPosition(view);
436
            if (position > 0) {
437
                if (layoutParams.getSpanIndex() % 2 == 0) {
438
                    outRect.left = DensityUtil.dip2px(view.getContext(), 15);
439
                    outRect.right = DensityUtil.dip2px(view.getContext(), 5);
440
                } else {
441
                    outRect.right = DensityUtil.dip2px(view.getContext(), 15);
442
                    outRect.left = DensityUtil.dip2px(view.getContext(), 5);
443
                }
433
            if (layoutParams.isFullSpan()) {
434
                return;
435
            }
436
437
            int index = layoutParams.getSpanIndex();
438
            if (index == -1) {
439
                return;
440
            }
441
442
            if (index % 2 == 0) {
443
                outRect.left = DensityUtil.dip2px(view.getContext(), 15);
444
                outRect.right = DensityUtil.dip2px(view.getContext(), 5);
445
            } else {
446
                outRect.right = DensityUtil.dip2px(view.getContext(), 15);
447
                outRect.left = DensityUtil.dip2px(view.getContext(), 5);
444 448
            }
445 449
446 450
        }

+ 11 - 36
app/src/main/java/com/electric/chargingpile/adapter/UserPageAdapter.java

@ -2,6 +2,7 @@ package com.electric.chargingpile.adapter;
2 2
3 3
import android.app.Activity;
4 4
import android.content.Context;
5
import android.graphics.Color;
5 6
import android.support.constraint.ConstraintLayout;
6 7
import android.support.v7.widget.RecyclerView;
7 8
import android.support.v7.widget.StaggeredGridLayoutManager;
@ -13,11 +14,9 @@ import android.widget.Toast;
13 14
14 15
import com.aspsine.irecyclerview.IViewHolder;
15 16
import com.electric.chargingpile.R;
16
import com.electric.chargingpile.activity.TopicDetailActivity;
17 17
import com.electric.chargingpile.application.MainApplication;
18 18
import com.electric.chargingpile.data.ChatRecommendBean;
19 19
import com.electric.chargingpile.data.TopicDetailBeanLab;
20
import com.electric.chargingpile.data.TopicHomePageBean;
21 20
import com.electric.chargingpile.data.UserPageBeanLab;
22 21
import com.electric.chargingpile.util.CircleTransform;
23 22
import com.electric.chargingpile.util.CommonParams;
@ -32,7 +31,6 @@ import com.zhy.http.okhttp.callback.StringCallback;
32 31
33 32
import java.util.ArrayList;
34 33
import java.util.HashMap;
35
import java.util.List;
36 34
import java.util.Map;
37 35
38 36
import okhttp3.Call;
@ -46,9 +44,6 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
46 44
    private Activity activity;
47 45
    private LayoutInflater layoutInflater;
48 46
    private final int screenWidth;
49
    private final int screenHeight;
50
    private final int statusHeight;
51
    private final int headerHeight;
52 47
    private final int itemWidth;
53 48
    private final UserPageBeanLab beanLab;
54 49
    private boolean showFooter = false;
@ -60,9 +55,6 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
60 55
        beanLab = UserPageBeanLab.get(context);
61 56
62 57
        screenWidth = ScreenUtils.getScreenWidth(context);
63
        screenHeight = ScreenUtils.getScreenHeight(context);
64
        statusHeight = ScreenUtils.getStatusHeight(context);
65
        headerHeight = DensityUtil.dip2px(context, 260);
66 58
        itemWidth = (screenWidth - DensityUtil.dip2px(context, 10 * 2)) / 2;
67 59
    }
68 60
@ -97,23 +89,15 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
97 89
98 90
    @Override
99 91
    public int getItemViewType(int position) {
100
        if (position == getItemCount()) {
101
            return TOPIC_DETAIL_FOOTER;
102
        }  else {
103
            return TOPIC_DETAIL_CONTENT;
104
        }
92
        return position == beanLab.beans().size() ? TOPIC_DETAIL_FOOTER : TOPIC_DETAIL_CONTENT;
105 93
    }
106 94
107 95
    @Override
108 96
    public int getItemCount() {
109
        return beanLab.beans().size() + 1;
97
        return beanLab.beans().size() + 1 ;
110 98
    }
111 99
112
113 100
    private void bindContentViewHolder(IViewHolder viewHolder, final int position) {
114
        if (beanLab.beans().size() == 0 || position >= beanLab.beans().size()) {
115
            return;
116
        }
117 101
118 102
        final ChatRecommendBean bean = beanLab.beans().get(position);
119 103
        TopicDetailAdapter.ContentViewHolder contentViewHolder = (TopicDetailAdapter.ContentViewHolder) viewHolder;
@ -180,26 +164,17 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
180 164
        TopicDetailAdapter.FooterViewHolder footerViewHolder = (TopicDetailAdapter.FooterViewHolder) viewHolder;
181 165
        StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) footerViewHolder.footerContainer.getLayoutParams();
182 166
        layoutParams.setFullSpan(true);
183
184 167
        footerViewHolder.footerContainer.setVisibility(showFooter ? View.VISIBLE : View.GONE);
185 168
186
        ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) footerViewHolder.footerView.getLayoutParams();
187
        if (TopicDetailBeanLab.get(context).beans().size() == 0) {
188
            footerViewHolder.footTextView.setText("还没有任何内容哦,快来抢沙发~");
189
            params.height = DensityUtil.dip2px(context, (screenHeight - headerHeight - statusHeight) / 4);
190
            params.bottomMargin = 0;
191
        } else {
169
        ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams)footerViewHolder.footerView.getLayoutParams();
170
        if (showFooter) {
192 171
            footerViewHolder.footTextView.setText("已经全部加载完毕");
193 172
            params.height = DensityUtil.dip2px(context, 20);
194
            params.bottomMargin = DensityUtil.dip2px(context, 10);
195
        }
196
197
        if (showFooter == false) {
198
            params.height = 0;
199
            params.bottomMargin = DensityUtil.dip2px(context, 10);
173
        } else {
174
            footerViewHolder.footTextView.setText("");
175
            params.height = 1;
200 176
        }
201
202
        footerViewHolder.footTextView.setLayoutParams(params);
177
        footerViewHolder.footerView.setLayoutParams(params);
203 178
    }
204 179
205 180
    /**
@ -208,7 +183,7 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
208 183
     * @param position
209 184
     */
210 185
    private void doLike(final int position) {
211
        final ChatRecommendBean bean = TopicDetailBeanLab.get(context).beans().get(position);
186
        final ChatRecommendBean bean = UserPageBeanLab.get(context).beans().get(position);
212 187
        String url = MainApplication.urlNew + "/topic/like.do";
213 188
        Map<String, String> map = new HashMap<>();
214 189
        map.put("targetId", bean.targetId + "");
@ -252,6 +227,6 @@ public class UserPageAdapter extends RecyclerView.Adapter<IViewHolder> {
252 227
253 228
    public void setFooterData(Boolean showFooter) {
254 229
        this.showFooter = showFooter;
255
        notifyItemRangeChanged(getItemCount(), 1);
230
        notifyItemRangeChanged(beanLab.beans().size(), 1);
256 231
    }
257 232
}

+ 1 - 0
app/src/main/res/layout/activity_user_page.xml

@ -158,6 +158,7 @@
158 158
                    app:layout_constraintTop_toTopOf="parent" />
159 159
160 160
                <TextView
161
                    android:id="@+id/topicNum"
161 162
                    android:layout_width="wrap_content"
162 163
                    android:layout_height="wrap_content"
163 164
                    android:paddingLeft="5dp"