Browse Source

个人页面开发完成

huyuguo 6 years ago
parent
commit
98bcbd4431

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

9
import android.support.v7.widget.RecyclerView;
9
import android.support.v7.widget.RecyclerView;
10
import android.support.v7.widget.StaggeredGridLayoutManager;
10
import android.support.v7.widget.StaggeredGridLayoutManager;
11
import android.text.TextUtils;
11
import android.text.TextUtils;
12
import android.util.Log;
13
import android.view.View;
12
import android.view.View;
14
import android.widget.ImageView;
13
import android.widget.ImageView;
15
import android.widget.RelativeLayout;
14
import android.widget.RelativeLayout;
22
import com.electric.chargingpile.adapter.UserPageAdapter;
21
import com.electric.chargingpile.adapter.UserPageAdapter;
23
import com.electric.chargingpile.application.MainApplication;
22
import com.electric.chargingpile.application.MainApplication;
24
import com.electric.chargingpile.data.UserHomePageBean;
23
import com.electric.chargingpile.data.UserHomePageBean;
25
import com.electric.chargingpile.iview.RecyclerItemTypeClickListener;
24
import com.electric.chargingpile.data.UserPageBeanLab;
26
import com.electric.chargingpile.util.CommonParams;
25
import com.electric.chargingpile.util.CommonParams;
27
import com.electric.chargingpile.util.JsonUtils;
26
import com.electric.chargingpile.util.JsonUtils;
28
import com.electric.chargingpile.util.LoadingDialog;
27
import com.electric.chargingpile.util.LoadingDialog;
29
import com.electric.chargingpile.util.NetUtil;
28
import com.electric.chargingpile.util.NetUtil;
30
import com.electric.chargingpile.util.OkHttpUtil;
31
import com.electric.chargingpile.util.ToastUtil;
29
import com.electric.chargingpile.util.ToastUtil;
32
import com.squareup.picasso.Picasso;
30
import com.squareup.picasso.Picasso;
33
import com.squareup.picasso.Target;
31
import com.squareup.picasso.Target;
61
    private StaggeredGridLayoutManager staggeredGridLayoutManager;
59
    private StaggeredGridLayoutManager staggeredGridLayoutManager;
62
    private UserPageAdapter userPageAdapter;
60
    private UserPageAdapter userPageAdapter;
63
    private ConstraintLayout zeroTopicNum;
61
    private ConstraintLayout zeroTopicNum;
62
    private TextView topicNum;
64
63
65
64
66
    @Override
65
    @Override
72
    }
71
    }
73
72
74
    private void initView() {
73
    private void initView() {
74
        UserPageBeanLab.get(UserPageActivity.this).clear();
75
75
        loadingDialog = new LoadingDialog(UserPageActivity.this);
76
        loadingDialog = new LoadingDialog(UserPageActivity.this);
76
        loadingDialog.setCanceledOnTouchOutside(false);
77
        loadingDialog.setCanceledOnTouchOutside(false);
77
78
83
        }
84
        }
84
        userHead = findViewById(R.id.userHead);
85
        userHead = findViewById(R.id.userHead);
85
        userEdit = findViewById(R.id.userEdit);
86
        userEdit = findViewById(R.id.userEdit);
87
        topicNum = findViewById(R.id.topicNum);
86
        nickName = findViewById(R.id.nickName);
88
        nickName = findViewById(R.id.nickName);
87
        carName = findViewById(R.id.carName);
89
        carName = findViewById(R.id.carName);
88
        if (fromUserCenter) {
90
        if (fromUserCenter) {
180
                }
182
                }
181
                break;
183
                break;
182
            case R.id.noNetTry:
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
                break;
193
                break;
187
            case R.id.userEdit:
194
            case R.id.userEdit:
188
                MobclickAgent.onEvent(getApplicationContext(), "0802");
195
                MobclickAgent.onEvent(getApplicationContext(), "0802");
236
                        updateTopView();
243
                        updateTopView();
237
                        if (userHomePageBean.list.size() == 0) {
244
                        if (userHomePageBean.list.size() == 0) {
238
                            zeroTopicNum.setVisibility(View.VISIBLE);
245
                            zeroTopicNum.setVisibility(View.VISIBLE);
246
                            xRefreshView.setLoadComplete(true);
239
                        } else {
247
                        } else {
240
                            zeroTopicNum.setVisibility(View.GONE);
248
                            zeroTopicNum.setVisibility(View.GONE);
241
                            userPageAdapter.setContentData(userHomePageBean.list);
249
                            userPageAdapter.setContentData(userHomePageBean.list);
247
                            userPageAdapter.setFooterData(true);
255
                            userPageAdapter.setFooterData(true);
248
                        } else {
256
                        } else {
249
                            userPageAdapter.addContentData(userHomePageBean.list);
257
                            userPageAdapter.addContentData(userHomePageBean.list);
258
                            userPageAdapter.setFooterData(false);
250
                        }
259
                        }
251
                    }
260
                    }
252
                } else {
261
                } else {
285
        } else {
294
        } else {
286
            carName.setText(userVo.carName);
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
import com.zhy.http.okhttp.OkHttpUtils;
33
import com.zhy.http.okhttp.OkHttpUtils;
34
import com.zhy.http.okhttp.callback.StringCallback;
34
import com.zhy.http.okhttp.callback.StringCallback;
35
35
36
import org.w3c.dom.Text;
37
38
import java.util.ArrayList;
36
import java.util.ArrayList;
39
import java.util.HashMap;
37
import java.util.HashMap;
40
import java.util.List;
38
import java.util.List;
432
        @Override
430
        @Override
433
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
431
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
434
            layoutParams = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams();
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
2
3
import android.app.Activity;
3
import android.app.Activity;
4
import android.content.Context;
4
import android.content.Context;
5
import android.graphics.Color;
5
import android.support.constraint.ConstraintLayout;
6
import android.support.constraint.ConstraintLayout;
6
import android.support.v7.widget.RecyclerView;
7
import android.support.v7.widget.RecyclerView;
7
import android.support.v7.widget.StaggeredGridLayoutManager;
8
import android.support.v7.widget.StaggeredGridLayoutManager;
13
14
14
import com.aspsine.irecyclerview.IViewHolder;
15
import com.aspsine.irecyclerview.IViewHolder;
15
import com.electric.chargingpile.R;
16
import com.electric.chargingpile.R;
16
import com.electric.chargingpile.activity.TopicDetailActivity;
17
import com.electric.chargingpile.application.MainApplication;
17
import com.electric.chargingpile.application.MainApplication;
18
import com.electric.chargingpile.data.ChatRecommendBean;
18
import com.electric.chargingpile.data.ChatRecommendBean;
19
import com.electric.chargingpile.data.TopicDetailBeanLab;
19
import com.electric.chargingpile.data.TopicDetailBeanLab;
20
import com.electric.chargingpile.data.TopicHomePageBean;
21
import com.electric.chargingpile.data.UserPageBeanLab;
20
import com.electric.chargingpile.data.UserPageBeanLab;
22
import com.electric.chargingpile.util.CircleTransform;
21
import com.electric.chargingpile.util.CircleTransform;
23
import com.electric.chargingpile.util.CommonParams;
22
import com.electric.chargingpile.util.CommonParams;
32
31
33
import java.util.ArrayList;
32
import java.util.ArrayList;
34
import java.util.HashMap;
33
import java.util.HashMap;
35
import java.util.List;
36
import java.util.Map;
34
import java.util.Map;
37
35
38
import okhttp3.Call;
36
import okhttp3.Call;
46
    private Activity activity;
44
    private Activity activity;
47
    private LayoutInflater layoutInflater;
45
    private LayoutInflater layoutInflater;
48
    private final int screenWidth;
46
    private final int screenWidth;
49
    private final int screenHeight;
50
    private final int statusHeight;
51
    private final int headerHeight;
52
    private final int itemWidth;
47
    private final int itemWidth;
53
    private final UserPageBeanLab beanLab;
48
    private final UserPageBeanLab beanLab;
54
    private boolean showFooter = false;
49
    private boolean showFooter = false;
60
        beanLab = UserPageBeanLab.get(context);
55
        beanLab = UserPageBeanLab.get(context);
61
56
62
        screenWidth = ScreenUtils.getScreenWidth(context);
57
        screenWidth = ScreenUtils.getScreenWidth(context);
63
        screenHeight = ScreenUtils.getScreenHeight(context);
64
        statusHeight = ScreenUtils.getStatusHeight(context);
65
        headerHeight = DensityUtil.dip2px(context, 260);
66
        itemWidth = (screenWidth - DensityUtil.dip2px(context, 10 * 2)) / 2;
58
        itemWidth = (screenWidth - DensityUtil.dip2px(context, 10 * 2)) / 2;
67
    }
59
    }
68
60
97
89
98
    @Override
90
    @Override
99
    public int getItemViewType(int position) {
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
    @Override
95
    @Override
108
    public int getItemCount() {
96
    public int getItemCount() {
109
        return beanLab.beans().size() + 1;
97
        return beanLab.beans().size() + 1 ;
110
    }
98
    }
111
99
112
113
    private void bindContentViewHolder(IViewHolder viewHolder, final int position) {
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
        final ChatRecommendBean bean = beanLab.beans().get(position);
102
        final ChatRecommendBean bean = beanLab.beans().get(position);
119
        TopicDetailAdapter.ContentViewHolder contentViewHolder = (TopicDetailAdapter.ContentViewHolder) viewHolder;
103
        TopicDetailAdapter.ContentViewHolder contentViewHolder = (TopicDetailAdapter.ContentViewHolder) viewHolder;
180
        TopicDetailAdapter.FooterViewHolder footerViewHolder = (TopicDetailAdapter.FooterViewHolder) viewHolder;
164
        TopicDetailAdapter.FooterViewHolder footerViewHolder = (TopicDetailAdapter.FooterViewHolder) viewHolder;
181
        StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) footerViewHolder.footerContainer.getLayoutParams();
165
        StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) footerViewHolder.footerContainer.getLayoutParams();
182
        layoutParams.setFullSpan(true);
166
        layoutParams.setFullSpan(true);
183
184
        footerViewHolder.footerContainer.setVisibility(showFooter ? View.VISIBLE : View.GONE);
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
            footerViewHolder.footTextView.setText("已经全部加载完毕");
171
            footerViewHolder.footTextView.setText("已经全部加载完毕");
193
            params.height = DensityUtil.dip2px(context, 20);
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
     * @param position
183
     * @param position
209
     */
184
     */
210
    private void doLike(final int position) {
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
        String url = MainApplication.urlNew + "/topic/like.do";
187
        String url = MainApplication.urlNew + "/topic/like.do";
213
        Map<String, String> map = new HashMap<>();
188
        Map<String, String> map = new HashMap<>();
214
        map.put("targetId", bean.targetId + "");
189
        map.put("targetId", bean.targetId + "");
252
227
253
    public void setFooterData(Boolean showFooter) {
228
    public void setFooterData(Boolean showFooter) {
254
        this.showFooter = showFooter;
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
                    app:layout_constraintTop_toTopOf="parent" />
158
                    app:layout_constraintTop_toTopOf="parent" />
159
159
160
                <TextView
160
                <TextView
161
                    android:id="@+id/topicNum"
161
                    android:layout_width="wrap_content"
162
                    android:layout_width="wrap_content"
162
                    android:layout_height="wrap_content"
163
                    android:layout_height="wrap_content"
163
                    android:paddingLeft="5dp"
164
                    android:paddingLeft="5dp"