关注,访客模块

This commit is contained in:
nail
2026-04-10 19:33:27 +08:00
parent 57c85bc333
commit 73f07201d9
26 changed files with 1367 additions and 82 deletions

View File

@@ -477,6 +477,12 @@
<activity <activity
android:name=".view.settings.PersonalSignatureActivity" android:name=".view.settings.PersonalSignatureActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".view.settings.ContactListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".view.settings.VisitorActivity"
android:screenOrientation="portrait" />
<receiver android:name=".view.main.receiver.NotificationClickReceiver" /> <!-- 微信支付 --> <receiver android:name=".view.main.receiver.NotificationClickReceiver" /> <!-- 微信支付 -->
<activity <activity

View File

@@ -115,8 +115,10 @@ public class ConstUrl {
public final static String TRACER_LIST = getUrl(BASE_URL, USER_FIELD, "viewer_list"); public final static String TRACER_LIST = getUrl(BASE_URL, USER_FIELD, "viewer_list");
public final static String VISITOR_LIST = getUrl(BASE_URL, USER_FIELD, "visitor_list"); public final static String VISITOR_LIST = getUrl(BASE_URL, USER_FIELD, "visitor_list");
public final static String VISITOR_LIST_NEW = getUrl(BASE_URL, USER_FIELD, "visitor_list_new");
public final static String GETADVERT = getUrl(BASE_URL, USER_FIELD, "getAdvert"); //广告 public final static String GETADVERT = getUrl(BASE_URL, USER_FIELD, "getAdvert"); //广告
public final static String FOCUS_LIST = getUrl(BASE_URL, USER_FIELD, "follow_list"); public final static String FOCUS_LIST = getUrl(BASE_URL, USER_FIELD, "follow_list");
public final static String FRIEND_LIST = getUrl(BASE_URL, USER_FIELD, "friend_list");
public final static String FANS_LIST = getUrl(BASE_URL, USER_FIELD, "fans_list"); public final static String FANS_LIST = getUrl(BASE_URL, USER_FIELD, "fans_list");
public final static String RECEIVED_GIFT_LIST = getUrl(BASE_URL, USER_FIELD, "gift_list"); public final static String RECEIVED_GIFT_LIST = getUrl(BASE_URL, USER_FIELD, "gift_list");
public final static String GET_CHAT_INFO = getUrl(BASE_URL, CHAT_FIELD, "call"); public final static String GET_CHAT_INFO = getUrl(BASE_URL, CHAT_FIELD, "call");

View File

@@ -1,29 +1,117 @@
package com.xuebiping.bolizhuzi.controller.main.adapter; package com.xuebiping.bolizhuzi.controller.main.adapter;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder; import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.drawee.view.SimpleDraweeView;
import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.R;
import com.xuebiping.bolizhuzi.controller.settings.adapter.ContactListAdapter;
import com.xuebiping.bolizhuzi.im.uikit.api.NimUIKit;
import com.xuebiping.bolizhuzi.model.main.LookMeBean; import com.xuebiping.bolizhuzi.model.main.LookMeBean;
import com.xuebiping.bolizhuzi.model.settings.SocialBean;
import com.xuebiping.bolizhuzi.utils.StrU; import com.xuebiping.bolizhuzi.utils.StrU;
import com.xuebiping.bolizhuzi.view.main.MainPageActivity;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class MainLookMeAdapter extends BaseQuickAdapter<LookMeBean, BaseViewHolder> { public class MainLookMeAdapter extends BaseQuickAdapter<SocialBean, BaseViewHolder> {
private Context mContext; private Context mContext;
private int mType;
public MainLookMeAdapter(int layoutResId, Context context) { public MainLookMeAdapter(int layoutResId, Context context, int type) {
super(layoutResId); super(layoutResId);
this.mContext = context; this.mContext = context;
this.mType = type;
} }
@Override @Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, LookMeBean lookMeBean) { protected void convert(@NotNull BaseViewHolder baseViewHolder, SocialBean bean) {
SimpleDraweeView list_photo = baseViewHolder.getView(R.id.list_photo);
list_photo.setImageURI(StrU.getResourcePath(lookMeBean.getAvatar_url(), mContext)); SimpleDraweeView photo = baseViewHolder.getView(R.id.list_photo);
TextView name = baseViewHolder.getView(R.id.social_list_name);
View redPoint = baseViewHolder.getView(R.id.social_red_point);
ImageView ivMemberSign = baseViewHolder.getView(R.id.iv_member_sign);
TextView tv_sign = baseViewHolder.getView(R.id.tv_sign);
RelativeLayout rl_online_bg = baseViewHolder.getView(R.id.rl_online_bg);
TextView tv_online = baseViewHolder.getView(R.id.tv_online);
LinearLayout ll_visit_time = baseViewHolder.getView(R.id.ll_visit_time);
TextView tv_add_time = baseViewHolder.getView(R.id.tv_add_time);
TextView tv_visit_number = baseViewHolder.getView(R.id.tv_visit_number);
TextView tv_chat = baseViewHolder.getView(R.id.tv_chat);
RelativeLayout rl_item = baseViewHolder.getView(R.id.rl_item);
if (mType == 0) {
ll_visit_time.setVisibility(View.VISIBLE);
tv_chat.setVisibility(View.GONE);
tv_add_time.setText(bean.getAdd_time() + "访问");
tv_visit_number.setText(bean.getVisit_times() + "");
}else if (mType == 1) {
ll_visit_time.setVisibility(View.GONE);
tv_chat.setVisibility(View.VISIBLE);
tv_chat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NimUIKit.startP2PSession(mContext, bean.getUserid() + "");
}
});
}
photo.setImageURI(StrU.getResourcePath(bean.getAvatar(), mContext));
name.setText(bean.getNickname());
// if (1 == bean.getIs_watch()) {
// redPoint.setVisibility(View.GONE);
// } else {
// redPoint.setVisibility(View.VISIBLE);
// }
if (0 == bean.getVip()) {
ivMemberSign.setVisibility(View.VISIBLE);
ivMemberSign.setImageResource(R.drawable.ic_pvip);
} else if (1 == bean.getVip()) {
ivMemberSign.setVisibility(View.VISIBLE);
ivMemberSign.setImageResource(R.drawable.ic_gvip);
} else {
ivMemberSign.setVisibility(View.GONE);
}
if (TextUtils.isEmpty(bean.getSignature())) {
tv_sign.setVisibility(View.INVISIBLE);
}else {
tv_sign.setVisibility(View.VISIBLE);
tv_sign.setText(bean.getSignature());
}
if (bean.getOnline_status() == 0) {
rl_online_bg.setBackgroundResource(R.drawable.look_me_not_online_bg);
tv_online.setText("离线");
}else if (bean.getOnline_status() == 1) {
rl_online_bg.setBackgroundResource(R.drawable.look_me_online_bg);
tv_online.setText("在线");
}else if (bean.getOnline_status() == 2) {
rl_online_bg.setBackgroundResource(R.drawable.look_me_activi_bg);
tv_online.setText("活跃");
}
rl_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mContext, MainPageActivity.class);
intent.putExtra("userId", bean.getUserid());
mContext.startActivity(intent); }
});
} }
} }

View File

@@ -0,0 +1,137 @@
package com.xuebiping.bolizhuzi.controller.settings.adapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.facebook.drawee.view.SimpleDraweeView;
import com.xuebiping.bolizhuzi.R;
import com.xuebiping.bolizhuzi.model.settings.SocialBean;
import com.xuebiping.bolizhuzi.utils.StrU;
import com.xuebiping.bolizhuzi.view.main.MainPageActivity;
import org.jetbrains.annotations.NotNull;
public class ContactListAdapter extends BaseQuickAdapter<SocialBean, BaseViewHolder> {
private Context mContext;
private int mType;
public ContactListAdapter(int layoutResId, Context context, int type) {
super(layoutResId);
this.mContext = context;
this.mType = type;
}
@Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, SocialBean bean) {
SimpleDraweeView photo = baseViewHolder.getView(R.id.list_photo);
TextView name = baseViewHolder.getView(R.id.social_list_name);
TextView focus = baseViewHolder.getView(R.id.tv_focus);
View redPoint = baseViewHolder.getView(R.id.social_red_point);
ImageView ivMemberSign = baseViewHolder.getView(R.id.iv_member_sign);
TextView tv_sign = baseViewHolder.getView(R.id.tv_sign);
RelativeLayout rl_online_bg = baseViewHolder.getView(R.id.rl_online_bg);
TextView tv_online = baseViewHolder.getView(R.id.tv_online);
RelativeLayout rl_item = baseViewHolder.getView(R.id.rl_item);
photo.setImageURI(StrU.getResourcePath(bean.getAvatar(), mContext));
name.setText(bean.getNickname());
// if (mType == 0 || mType == 1) {
// focus.setText("已关注");
// focus.setTextColor(Color.parseColor("#dddddd"));
// focus.setBackgroundResource(R.drawable.shape_dddddd_line_oval_bg);
// }else if (mType == 2) {
// if (bean.getIs_follow() == 1) {
// focus.setText("已关注");
// focus.setTextColor(Color.parseColor("#dddddd"));
// focus.setBackgroundResource(R.drawable.shape_dddddd_line_oval_bg);
// }else {
// focus.setText("关注");
// focus.setTextColor(mContext.getResources().getColor(R.color.yellow_ffd33e));
// focus.setBackgroundResource(R.drawable.shape_main_color_line_oval_bg);
// }
// }
if (bean.getIs_follow() == 1) {
focus.setText("已关注");
focus.setTextColor(Color.parseColor("#dddddd"));
focus.setBackgroundResource(R.drawable.shape_dddddd_line_oval_bg);
}else {
focus.setText("关注");
focus.setTextColor(mContext.getResources().getColor(R.color.yellow_ffd33e));
focus.setBackgroundResource(R.drawable.shape_main_color_line_oval_bg);
}
// if (1 == bean.getIs_watch()) {
// redPoint.setVisibility(View.GONE);
// } else {
// redPoint.setVisibility(View.VISIBLE);
// }
if (0 == bean.getVip()) {
ivMemberSign.setVisibility(View.VISIBLE);
ivMemberSign.setImageResource(R.drawable.ic_pvip);
} else if (1 == bean.getVip()) {
ivMemberSign.setVisibility(View.VISIBLE);
ivMemberSign.setImageResource(R.drawable.ic_gvip);
} else {
ivMemberSign.setVisibility(View.GONE);
}
if (TextUtils.isEmpty(bean.getSignature())) {
tv_sign.setVisibility(View.INVISIBLE);
}else {
tv_sign.setVisibility(View.VISIBLE);
tv_sign.setText(bean.getSignature());
}
if (bean.getOnline_status() == 0) {
rl_online_bg.setBackgroundResource(R.drawable.look_me_not_online_bg);
tv_online.setText("离线");
}else if (bean.getOnline_status() == 1) {
rl_online_bg.setBackgroundResource(R.drawable.look_me_online_bg);
tv_online.setText("在线");
}else if (bean.getOnline_status() == 2) {
rl_online_bg.setBackgroundResource(R.drawable.look_me_activi_bg);
tv_online.setText("活跃");
}
focus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (null != mOnFocusClickListener) {
mOnFocusClickListener.onFocusClick(baseViewHolder.getLayoutPosition(), bean.getUserid(), bean.getIs_follow());
}
}
});
rl_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mContext, MainPageActivity.class);
intent.putExtra("userId", bean.getUserid());
mContext.startActivity(intent); }
});
}
private OnFocusClickListener mOnFocusClickListener;
public void setOnFocusClickListener(OnFocusClickListener onFocusClickListener) {
mOnFocusClickListener = onFocusClickListener;
}
public interface OnFocusClickListener {
void onFocusClick(int position, int user_id, int is_follow);
}
}

View File

@@ -511,6 +511,66 @@ public class SettingManager {
task.start(); task.start();
} }
public static void getLookData(BaseActivity activity,
final int type,
final int page,
HttpUiCallBack<SocialListBean> httpUiCallBack) {
HttpWithUiTask<SocialListBean> task = new HttpWithUiTask<SocialListBean>(activity, httpUiCallBack) {
@Override
protected HttpResult<SocialListBean> run() throws Exception {
String url = null;
if (type == 0) {
url = ConstUrl.VISITOR_LIST_NEW;
} else if (1 == type) {
url = ConstUrl.TRACER_LIST;
}
HttpRequest.Builder builder = new HttpRequest.Builder()
.setResultType(new TType<HttpResult<SocialListBean>>() {
}).setHttpMethod(HttpMethod.POST)
.addParam("page", page + "")
.setUrl(url);
HttpRequest request = builder.build();
return request.request();
}
};
task.start();
}
public static void getContactList(BaseActivity activity,
final int type,
final int page,
HttpUiCallBack<SocialListBean> httpUiCallBack) {
HttpWithUiTask<SocialListBean> task = new HttpWithUiTask<SocialListBean>(activity, httpUiCallBack) {
@Override
protected HttpResult<SocialListBean> run() throws Exception {
String url = null;
if (type == 0) {
url = ConstUrl.FRIEND_LIST;
} else if (1 == type) {
url = ConstUrl.FOCUS_LIST;
} else if (2 == type) {
url = ConstUrl.FANS_LIST;
}
HttpRequest.Builder builder = new HttpRequest.Builder()
.setResultType(new TType<HttpResult<SocialListBean>>() {
}).setHttpMethod(HttpMethod.POST)
.addParam("page", page + "")
.setUrl(url);
HttpRequest request = builder.build();
return request.request();
}
};
task.start(false);
}
public static void getInviteList(BaseActivity activity, final int page, String user, HttpUiCallBack< public static void getInviteList(BaseActivity activity, final int page, String user, HttpUiCallBack<
SocialListBean> httpUiCallBack) { SocialListBean> httpUiCallBack) {
HttpWithUiTask<SocialListBean> task = new HttpWithUiTask<SocialListBean>(activity, httpUiCallBack) { HttpWithUiTask<SocialListBean> task = new HttpWithUiTask<SocialListBean>(activity, httpUiCallBack) {

View File

@@ -65,7 +65,8 @@ public class DropFake extends View {
protected void onDraw(Canvas canvas) { protected void onDraw(Canvas canvas) {
super.onDraw(canvas); super.onDraw(canvas);
// circle // circle
int[] mColors = {0xFFE69EFF, 0xFF925BF7}; // int[] mColors = {0xFFE69EFF, 0xFF925BF7};
int[] mColors = {0xFFF94F2E, 0xFFF94F2E};
Paint circlePaint = DropManager.getInstance().getCirclePaint(); Paint circlePaint = DropManager.getInstance().getCirclePaint();
circlePaint.setShader(new LinearGradient(0, 0, circleX + radius, circleY + radius, mColors, null, Shader.TileMode.CLAMP)); circlePaint.setShader(new LinearGradient(0, 0, circleX + radius, circleY + radius, mColors, null, Shader.TileMode.CLAMP));
canvas.drawCircle(circleX, circleY, radius, circlePaint); canvas.drawCircle(circleX, circleY, radius, circlePaint);

View File

@@ -14,6 +14,9 @@ public class SocialBean {
private String city; private String city;
private int is_watch = 1; private int is_watch = 1;
private int vip = 2; private int vip = 2;
private String signature;
private int online_status; //0 不在线 1在线 2活跃
private int visit_times;
public int getUserid() { public int getUserid() {
return userid; return userid;
@@ -119,6 +122,30 @@ public class SocialBean {
this.vip = vip; this.vip = vip;
} }
public String getSignature() {
return signature;
}
public void setSignature(String signature) {
this.signature = signature;
}
public int getOnline_status() {
return online_status;
}
public void setOnline_status(int online_status) {
this.online_status = online_status;
}
public int getVisit_times() {
return visit_times;
}
public void setVisit_times(int visit_times) {
this.visit_times = visit_times;
}
@Override @Override
public String toString() { public String toString() {
return "SocialBean{" + return "SocialBean{" +

View File

@@ -5,6 +5,7 @@ import java.util.List;
public class SocialListBean { public class SocialListBean {
private List<SocialBean> list = new ArrayList<>(); private List<SocialBean> list = new ArrayList<>();
private int total_page;
private int total; private int total;
public List<SocialBean> getList() { public List<SocialBean> getList() {
@@ -22,4 +23,12 @@ public class SocialListBean {
public void setTotal(int total) { public void setTotal(int total) {
this.total = total; this.total = total;
} }
public int getTotal_page() {
return total_page;
}
public void setTotal_page(int total_page) {
this.total_page = total_page;
}
} }

View File

@@ -4,6 +4,7 @@ import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@@ -11,12 +12,18 @@ import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.fengliyan.uikit.toast.MaleToast;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.R;
import com.xuebiping.bolizhuzi.controller.main.adapter.MainLookMeAdapter; import com.xuebiping.bolizhuzi.controller.main.adapter.MainLookMeAdapter;
import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager;
import com.xuebiping.bolizhuzi.model.main.LookMeBean; import com.xuebiping.bolizhuzi.model.main.LookMeBean;
import com.xuebiping.bolizhuzi.model.settings.SocialBean;
import com.xuebiping.bolizhuzi.model.settings.SocialListBean;
import com.xuebiping.bolizhuzi.view.base.BaseActivity;
import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -25,14 +32,19 @@ import java.util.List;
public class LookMeFragment extends Fragment implements OnRefreshLoadMoreListener { public class LookMeFragment extends Fragment implements OnRefreshLoadMoreListener {
private int mType = 0; //0看过我的 1我的足迹
private View v; private View v;
private SmartRefreshLayout mSmart_refresh; private SmartRefreshLayout mSmart_refresh;
private RecyclerView mRv_recommend_list; private RecyclerView mRv_recommend_list;
private LinearLayout mRl_no_data;
private MainLookMeAdapter mMainLookMeAdapter; private MainLookMeAdapter mMainLookMeAdapter;
private int mPage = 1; private int mPage = 1;
private List<LookMeBean> mData = new ArrayList<>(); private int mTotalPage;
private List<SocialBean> mData = new ArrayList<>();
@Nullable @Nullable
@org.jetbrains.annotations.Nullable @org.jetbrains.annotations.Nullable
@@ -40,34 +52,63 @@ public class LookMeFragment extends Fragment implements OnRefreshLoadMoreListene
public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_look_me, container, false); v = inflater.inflate(R.layout.fragment_look_me, container, false);
initView(v); initView(v);
getData(mPage); getLookData(mPage);
return v; return v;
} }
private void initView(View v) { private void initView(View v) {
mSmart_refresh = v.findViewById(R.id.smart_refresh); mSmart_refresh = v.findViewById(R.id.smart_refresh);
mRv_recommend_list = v.findViewById(R.id.rv_recommend_list); mRv_recommend_list = v.findViewById(R.id.rv_recommend_list);
mRl_no_data = v.findViewById(R.id.rl_no_data);
mRv_recommend_list.setLayoutManager(new LinearLayoutManager(getActivity())); mRv_recommend_list.setLayoutManager(new LinearLayoutManager(getActivity()));
mMainLookMeAdapter = new MainLookMeAdapter(R.layout.item_main_look_me, getActivity()); mMainLookMeAdapter = new MainLookMeAdapter(R.layout.item_main_look_me, getActivity(), mType);
mRv_recommend_list.setAdapter(mMainLookMeAdapter); mRv_recommend_list.setAdapter(mMainLookMeAdapter);
mSmart_refresh.setOnRefreshLoadMoreListener(this); mSmart_refresh.setOnRefreshLoadMoreListener(this);
} }
private void getData(int page) { private void getLookData(int page){
SettingManager.getLookData((BaseActivity) getActivity(), mType, page, new HttpUiCallBack<SocialListBean>() {
for (int i = 0; i < 10; i++) { @Override
public void onSuccess(BaseActivity activity, SocialListBean result, String message) {
LookMeBean lookMeBean = new LookMeBean(); finishFresh();
lookMeBean.setId(i + ""); if (result != null) {
lookMeBean.setAvatar_url("uploads/admin/202403/25/04cf409ab9148f11c0052bb254b5c155.jpg"); mTotalPage = result.getTotal_page();
mData.add(lookMeBean); if (mPage == 1) {
mData.clear();
}
List<SocialBean> list = result.getList();
if (list != null && list.size() > 0) {
mData.addAll(list);
}
}
if (mData != null && mData.size() > 0) {
if (mPage == 1) {
mRl_no_data.setVisibility(View.GONE);
mRv_recommend_list.setVisibility(View.VISIBLE);
}
mMainLookMeAdapter.setList(mData);
} else {
if (mPage == 1) {
mRl_no_data.setVisibility(View.VISIBLE);
mRv_recommend_list.setVisibility(View.GONE);
}
}
} }
@Override
public void onFailure(BaseActivity activity, String tip) {
finishFresh(); finishFresh();
mMainLookMeAdapter.setList(mData); MaleToast.showFailureMsg(activity, tip);
}
@Override
public void onException(BaseActivity activity, Throwable e) {
finishFresh();
MaleToast.showFailureMsg(activity, "请重试");
}
});
} }
public void finishFresh() { public void finishFresh() {
@@ -78,12 +119,17 @@ public class LookMeFragment extends Fragment implements OnRefreshLoadMoreListene
@Override @Override
public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) {
mPage++; mPage++;
getData(mPage); if (mPage > mTotalPage) {
mSmart_refresh.finishLoadMore();
mSmart_refresh.setNoMoreData(true);
} else {
getLookData(mPage);
}
} }
@Override @Override
public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) {
mPage = 1; mPage = 1;
getData(mPage); getLookData(mPage);
} }
} }

View File

@@ -1,7 +1,6 @@
package com.xuebiping.bolizhuzi.view.main; package com.xuebiping.bolizhuzi.view.main;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -15,17 +14,13 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.R;
import com.xuebiping.bolizhuzi.controller.constant.ConstUrl;
import com.xuebiping.bolizhuzi.controller.main.adapter.MainLookMeAdapter;
import com.xuebiping.bolizhuzi.controller.main.adapter.MainRecommendAdapter; import com.xuebiping.bolizhuzi.controller.main.adapter.MainRecommendAdapter;
import com.xuebiping.bolizhuzi.model.main.BannerBean; import com.xuebiping.bolizhuzi.model.main.BannerBean;
import com.xuebiping.bolizhuzi.model.main.LookMeBean; import com.xuebiping.bolizhuzi.model.main.LookMeBean;
import com.xuebiping.bolizhuzi.model.main.MainRecommendListBean;
import com.xuebiping.bolizhuzi.utils.BaseUtils; import com.xuebiping.bolizhuzi.utils.BaseUtils;
import com.xuebiping.bolizhuzi.utils.GlideImageLoader; import com.xuebiping.bolizhuzi.utils.GlideImageLoader;
import com.xuebiping.bolizhuzi.utils.SPUtils; import com.xuebiping.bolizhuzi.utils.SPUtils;

View File

@@ -0,0 +1,118 @@
package com.xuebiping.bolizhuzi.view.settings;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import com.xuebiping.bolizhuzi.R;
import com.xuebiping.bolizhuzi.controller.main.adapter.MainViewPagerAdapter;
import com.xuebiping.bolizhuzi.controller.main.adapter.ScaleTransitionPagerTitleView;
import com.xuebiping.bolizhuzi.view.base.BaseActivity;
import com.xuebiping.bolizhuzi.view.main.LookMeFragment;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
import net.lucode.hackware.magicindicator.buildins.UIUtil;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
import java.util.ArrayList;
import java.util.List;
public class ContactListActivity extends BaseActivity {
private MagicIndicator mMagicIndicator;
private ViewPager mMainViewPager;
private MainViewPagerAdapter mViewPagerAdapter;
private List<Fragment> mChannelFragments = new ArrayList<>();
private ContactListFragment mFriendFragment;
private ContactListFragment mFocusFragment;
private ContactListFragment mFansFragment;
private List<String> mDataList = new ArrayList<>();
private int mIndex = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact_list);
setTitleName("通讯录");
initView();
}
private void initView() {
mMagicIndicator = findViewById(R.id.magic_indicator);
mMainViewPager = findViewById(R.id.main_view_pager);
mFriendFragment = ContactListFragment.newInstance(0);
mFocusFragment = ContactListFragment.newInstance(1);
mFansFragment = ContactListFragment.newInstance(2);
mChannelFragments.add(mFriendFragment);
mChannelFragments.add(mFocusFragment);
mChannelFragments.add(mFansFragment);
mViewPagerAdapter = new MainViewPagerAdapter(getSupportFragmentManager(),
mChannelFragments);
mMainViewPager.setAdapter(mViewPagerAdapter);
initMagicIndicator();
mViewPagerAdapter.notifyDataSetChanged();
mMainViewPager.setCurrentItem(mIndex);
}
private void initMagicIndicator() {
mDataList.clear();
mDataList.add("好友");
mDataList.add("关注");
mDataList.add("粉丝");
CommonNavigator commonNavigator = new CommonNavigator(this);
commonNavigator.setAdapter(new CommonNavigatorAdapter() {
@Override
public int getCount() {
return mDataList == null ? 0 : mDataList.size();
}
@Override
public IPagerTitleView getTitleView(Context context, final int index) {
SimplePagerTitleView simplePagerTitleView = new ScaleTransitionPagerTitleView(context);
simplePagerTitleView.setText(mDataList.get(index));
simplePagerTitleView.setTextSize(20);
simplePagerTitleView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));//加粗
simplePagerTitleView.setNormalColor(Color.parseColor("#33000000"));
simplePagerTitleView.setSelectedColor(Color.parseColor("#000000"));
simplePagerTitleView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mMainViewPager.setCurrentItem(index);
}
});
return simplePagerTitleView;
}
@Override
public IPagerIndicator getIndicator(Context context) {
LinePagerIndicator indicator = new LinePagerIndicator(context);
indicator.setColors(getResources().getColor(R.color.yellow_ffd33e));
indicator.setLineHeight(UIUtil.dip2px(context, 10));
indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
return null;
}
});
mMagicIndicator.setNavigator(commonNavigator);
ViewPagerHelper.bind(mMagicIndicator, mMainViewPager);
}
}

View File

@@ -0,0 +1,185 @@
package com.xuebiping.bolizhuzi.view.settings;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.fengliyan.uikit.toast.MaleToast;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xuebiping.bolizhuzi.R;
import com.xuebiping.bolizhuzi.controller.dynamics.manager.DynamicsManager;
import com.xuebiping.bolizhuzi.controller.settings.adapter.ContactListAdapter;
import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager;
import com.xuebiping.bolizhuzi.model.main.FollowResultBean;
import com.xuebiping.bolizhuzi.model.settings.SocialBean;
import com.xuebiping.bolizhuzi.model.settings.SocialListBean;
import com.xuebiping.bolizhuzi.view.base.BaseActivity;
import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class ContactListFragment extends Fragment implements OnRefreshLoadMoreListener {
private static final String ARG_PARAM1 = "param1";
private int mType; //0 好友 1 关注 2粉丝
private View v;
private SmartRefreshLayout mSmart_refresh;
private RecyclerView mRv_recommend_list;
private LinearLayout mRl_no_data;
private int mPage = 1;
private int mTotalPage;
private List<SocialBean> mData = new ArrayList<>();
private ContactListAdapter mContactListAdapter;
public ContactListFragment() {
// Required empty public constructor
}
public static ContactListFragment newInstance(int param1) {
ContactListFragment fragment = new ContactListFragment();
Bundle args = new Bundle();
args.putInt(ARG_PARAM1, param1);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mType = getArguments().getInt(ARG_PARAM1);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_contact_list, container, false);
initView(v);
getContactList(mPage);
return v;
}
private void initView(View v) {
mSmart_refresh = v.findViewById(R.id.smart_refresh);
mRv_recommend_list = v.findViewById(R.id.rv_recommend_list);
mRl_no_data = v.findViewById(R.id.rl_no_data);
mRv_recommend_list.setLayoutManager(new LinearLayoutManager(getActivity()));
mContactListAdapter = new ContactListAdapter(R.layout.item_contact_list, getActivity(), mType);
mRv_recommend_list.setAdapter(mContactListAdapter);
mSmart_refresh.setOnRefreshLoadMoreListener(this);
mContactListAdapter.setOnFocusClickListener(new ContactListAdapter.OnFocusClickListener() {
@Override
public void onFocusClick(int position, int user_id, int is_follow) {
follow(user_id + "", position);
}
});
}
private void follow(String uid, final int position){
DynamicsManager.follow((BaseActivity) getActivity(), uid, new HttpUiCallBack<FollowResultBean>() {
@Override
public void onSuccess(BaseActivity activity, FollowResultBean result, String message) {
mData.get(position).setIs_follow(mData.get(position)
.getIs_follow() == 1? 0 :1);
mContactListAdapter.notifyItemChanged(position);
}
@Override
public void onFailure(BaseActivity activity, String tip) {
MaleToast.showMessage(activity, tip);
}
@Override
public void onException(BaseActivity activity, Throwable e) {
MaleToast.showMessage(activity, "关注失败");
}
});
}
private void getContactList(int page){
SettingManager.getContactList((BaseActivity) getActivity(), mType, page, new HttpUiCallBack<SocialListBean>() {
@Override
public void onSuccess(BaseActivity activity, SocialListBean result, String message) {
finishFresh();
if (result != null) {
mTotalPage = result.getTotal_page();
if (mPage == 1) {
mData.clear();
}
List<SocialBean> list = result.getList();
if (list != null && list.size() > 0) {
mData.addAll(list);
}
}
if (mData != null && mData.size() > 0) {
if (mPage == 1) {
mRl_no_data.setVisibility(View.GONE);
mRv_recommend_list.setVisibility(View.VISIBLE);
}
mContactListAdapter.setList(mData);
} else {
if (mPage == 1) {
mRl_no_data.setVisibility(View.VISIBLE);
mRv_recommend_list.setVisibility(View.GONE);
}
}
}
@Override
public void onFailure(BaseActivity activity, String tip) {
finishFresh();
MaleToast.showFailureMsg(activity, tip);
}
@Override
public void onException(BaseActivity activity, Throwable e) {
finishFresh();
MaleToast.showFailureMsg(activity, "请重试");
}
});
}
public void finishFresh() {
mSmart_refresh.finishLoadMore();
mSmart_refresh.finishRefresh();
}
@Override
public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) {
mPage++;
if (mPage > mTotalPage) {
mSmart_refresh.finishLoadMore();
mSmart_refresh.setNoMoreData(true);
} else {
getContactList(mPage);
}
}
@Override
public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) {
mPage = 1;
getContactList(mPage);
}
}

View File

@@ -0,0 +1,134 @@
package com.xuebiping.bolizhuzi.view.settings;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.fengliyan.uikit.toast.MaleToast;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xuebiping.bolizhuzi.R;
import com.xuebiping.bolizhuzi.controller.main.adapter.MainLookMeAdapter;
import com.xuebiping.bolizhuzi.controller.settings.manager.SettingManager;
import com.xuebiping.bolizhuzi.model.settings.SocialBean;
import com.xuebiping.bolizhuzi.model.settings.SocialListBean;
import com.xuebiping.bolizhuzi.view.base.BaseActivity;
import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class MeLookFragment extends Fragment implements OnRefreshLoadMoreListener {
private int mType = 1; //0看过我的 1我的足迹
private View v;
private SmartRefreshLayout mSmart_refresh;
private RecyclerView mRv_recommend_list;
private LinearLayout mRl_no_data;
private MainLookMeAdapter mMainLookMeAdapter;
private int mPage = 1;
private int mTotalPage;
private List<SocialBean> mData = new ArrayList<>();
@Nullable
@org.jetbrains.annotations.Nullable
@Override
public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_look_me, container, false);
initView(v);
getLookData(mPage);
return v;
}
private void initView(View v) {
mSmart_refresh = v.findViewById(R.id.smart_refresh);
mRv_recommend_list = v.findViewById(R.id.rv_recommend_list);
mRl_no_data = v.findViewById(R.id.rl_no_data);
mRv_recommend_list.setLayoutManager(new LinearLayoutManager(getActivity()));
mMainLookMeAdapter = new MainLookMeAdapter(R.layout.item_main_look_me, getActivity(), mType);
mRv_recommend_list.setAdapter(mMainLookMeAdapter);
mSmart_refresh.setOnRefreshLoadMoreListener(this);
}
private void getLookData(int page){
SettingManager.getLookData((BaseActivity) getActivity(), mType, page, new HttpUiCallBack<SocialListBean>() {
@Override
public void onSuccess(BaseActivity activity, SocialListBean result, String message) {
finishFresh();
if (result != null) {
mTotalPage = result.getTotal_page();
if (mPage == 1) {
mData.clear();
}
List<SocialBean> list = result.getList();
if (list != null && list.size() > 0) {
mData.addAll(list);
}
}
if (mData != null && mData.size() > 0) {
if (mPage == 1) {
mRl_no_data.setVisibility(View.GONE);
mRv_recommend_list.setVisibility(View.VISIBLE);
}
mMainLookMeAdapter.setList(mData);
} else {
if (mPage == 1) {
mRl_no_data.setVisibility(View.VISIBLE);
mRv_recommend_list.setVisibility(View.GONE);
}
}
}
@Override
public void onFailure(BaseActivity activity, String tip) {
finishFresh();
MaleToast.showFailureMsg(activity, tip);
}
@Override
public void onException(BaseActivity activity, Throwable e) {
finishFresh();
MaleToast.showFailureMsg(activity, "请重试");
}
});
}
public void finishFresh() {
mSmart_refresh.finishLoadMore();
mSmart_refresh.finishRefresh();
}
@Override
public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) {
mPage++;
if (mPage > mTotalPage) {
mSmart_refresh.finishLoadMore();
mSmart_refresh.setNoMoreData(true);
} else {
getLookData(mPage);
}
}
@Override
public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) {
mPage = 1;
getLookData(mPage);
}
}

View File

@@ -497,9 +497,11 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener {
startActivity(intent); startActivity(intent);
break; break;
case R.id.ll_foucs://关注 case R.id.ll_foucs://关注
intent = new Intent(getActivity(), SocialActivity.class); // intent = new Intent(getActivity(), SocialActivity.class);
intent.putExtra("socialType", 0); // intent.putExtra("socialType", 0);
getActivity().startActivityForResult(intent, SETTING_SOCIAL_REQUEST); // getActivity().startActivityForResult(intent, SETTING_SOCIAL_REQUEST);
intent = new Intent(getActivity(), ContactListActivity.class);
startActivity(intent);
break; break;
case R.id.ll_fans://粉丝 case R.id.ll_fans://粉丝
intent = new Intent(getActivity(), SocialActivity.class); intent = new Intent(getActivity(), SocialActivity.class);
@@ -507,8 +509,10 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener {
getActivity().startActivityForResult(intent, SETTING_SOCIAL_REQUEST); getActivity().startActivityForResult(intent, SETTING_SOCIAL_REQUEST);
break; break;
case R.id.ll_scan://来访 case R.id.ll_scan://来访
intent = new Intent(getActivity(), SocialActivity.class); // intent = new Intent(getActivity(), SocialActivity.class);
intent.putExtra("socialType", 2); // intent.putExtra("socialType", 2);
// startActivity(intent);
intent = new Intent(getActivity(), VisitorActivity.class);
startActivity(intent); startActivity(intent);
break; break;
case R.id.ll_foot://足迹 case R.id.ll_foot://足迹
@@ -523,6 +527,7 @@ public class SettingFragment2 extends Fragment implements View.OnClickListener {
case R.id.cl_income: case R.id.cl_income:
intent = new Intent(getActivity(), WalletActivity.class); intent = new Intent(getActivity(), WalletActivity.class);
startActivity(intent); startActivity(intent);
break;
case R.id.ll_income: case R.id.ll_income:
intent = new Intent(getActivity(), CaibeiRechargeActivity.class); intent = new Intent(getActivity(), CaibeiRechargeActivity.class);
startActivity(intent); startActivity(intent);

View File

@@ -0,0 +1,115 @@
package com.xuebiping.bolizhuzi.view.settings;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import com.xuebiping.bolizhuzi.R;
import com.xuebiping.bolizhuzi.controller.main.adapter.MainViewPagerAdapter;
import com.xuebiping.bolizhuzi.controller.main.adapter.ScaleTransitionPagerTitleView;
import com.xuebiping.bolizhuzi.view.base.BaseActivity;
import com.xuebiping.bolizhuzi.view.main.LookMeFragment;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
import net.lucode.hackware.magicindicator.buildins.UIUtil;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
import java.util.ArrayList;
import java.util.List;
public class VisitorActivity extends BaseActivity {
private MagicIndicator mMagicIndicator;
private ViewPager mMainViewPager;
private MainViewPagerAdapter mViewPagerAdapter;
private List<Fragment> mChannelFragments = new ArrayList<>();
private LookMeFragment mLookMeFragment;
private MeLookFragment mMeLookFragment;
private List<String> mDataList = new ArrayList<>();
private int mIndex = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_visittor);
setTitleName("访客");
initView();
}
private void initView() {
mMagicIndicator = findViewById(R.id.magic_indicator);
mMainViewPager = findViewById(R.id.main_view_pager);
mLookMeFragment = new LookMeFragment();
mMeLookFragment = new MeLookFragment();
mChannelFragments.add(mLookMeFragment);
mChannelFragments.add(mMeLookFragment);
mViewPagerAdapter = new MainViewPagerAdapter(getSupportFragmentManager(),
mChannelFragments);
mMainViewPager.setAdapter(mViewPagerAdapter);
initMagicIndicator();
mViewPagerAdapter.notifyDataSetChanged();
mMainViewPager.setCurrentItem(mIndex);
}
private void initMagicIndicator() {
mDataList.clear();
mDataList.add("看过我的");
mDataList.add("我的足迹");
CommonNavigator commonNavigator = new CommonNavigator(this);
commonNavigator.setAdapter(new CommonNavigatorAdapter() {
@Override
public int getCount() {
return mDataList == null ? 0 : mDataList.size();
}
@Override
public IPagerTitleView getTitleView(Context context, final int index) {
SimplePagerTitleView simplePagerTitleView = new ScaleTransitionPagerTitleView(context);
simplePagerTitleView.setText(mDataList.get(index));
simplePagerTitleView.setTextSize(20);
simplePagerTitleView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));//加粗
simplePagerTitleView.setNormalColor(Color.parseColor("#33000000"));
simplePagerTitleView.setSelectedColor(Color.parseColor("#000000"));
simplePagerTitleView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mMainViewPager.setCurrentItem(index);
}
});
return simplePagerTitleView;
}
@Override
public IPagerIndicator getIndicator(Context context) {
LinePagerIndicator indicator = new LinePagerIndicator(context);
indicator.setColors(getResources().getColor(R.color.yellow_ffd33e));
indicator.setLineHeight(UIUtil.dip2px(context, 10));
indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
return null;
}
});
mMagicIndicator.setNavigator(commonNavigator);
ViewPagerHelper.bind(mMagicIndicator, mMainViewPager);
}
}

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:angle="0"
android:startColor="#F2B854"
android:endColor="#F8D77A"/>
<corners android:radius="@dimen/dp16"/>
</shape>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#999999"/>
<corners android:radius="@dimen/dp16"/>
</shape>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp" android:color="#dddddd"/>
<corners android:radius="45dp"/>
</shape>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/yellow_ffd33e"/>
<corners android:radius="45dp"/>
</shape>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<LinearLayout
android:layout_marginLeft="@dimen/dp12"
android:id="@+id/rl_head"
android:layout_width="match_parent"
android:layout_height="@dimen/dp48">
<net.lucode.hackware.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp48"
android:layout_gravity="center_vertical" />
</LinearLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/rl_head" />
</RelativeLayout>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<LinearLayout
android:layout_marginLeft="@dimen/dp12"
android:id="@+id/rl_head"
android:layout_width="match_parent"
android:layout_height="@dimen/dp48">
<net.lucode.hackware.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp48"
android:layout_gravity="center_vertical" />
</LinearLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/rl_head" />
</RelativeLayout>

View File

@@ -0,0 +1,75 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:viewBindingIgnore="true">
<LinearLayout
android:id="@+id/ll_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible">
<com.scwang.smartrefresh.layout.header.ClassicsHeader
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srlEnableLastTime="false" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/rl_no_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp100"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
<ImageView
android:layout_width="@dimen/dp150"
android:layout_height="@dimen/dp88"
android:src="@mipmap/icon_img_no_black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp5"
android:text="暂无数据"
android:textColor="@color/three_text"
android:textSize="13sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_recommend_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_10" />
</LinearLayout>
</LinearLayout>
<com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</LinearLayout>
</LinearLayout>

View File

@@ -374,18 +374,18 @@
<com.flyco.roundview.RoundTextView <com.flyco.roundview.RoundTextView
android:id="@+id/rtv_new_scan_num" android:id="@+id/rtv_new_scan_num"
android:layout_width="12dp" android:layout_width="18dp"
android:layout_height="12dp" android:layout_height="18dp"
android:layout_toEndOf="@id/ll_scan" android:layout_toEndOf="@id/ll_scan"
android:gravity="center" android:gravity="center"
android:text="" android:text=""
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="8sp" android:textSize="12sp"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintStart_toEndOf="@+id/tv_scan_num" app:layout_constraintStart_toEndOf="@+id/tv_scan_num"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:rv_backgroundColor="@color/mainColor" app:rv_backgroundColor="#f94f2e"
app:rv_cornerRadius="7dp" /> app:rv_cornerRadius="9dp" />
<TextView <TextView
android:id="@+id/tv_scan" android:id="@+id/tv_scan"
@@ -403,6 +403,7 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout <LinearLayout
android:visibility="gone"
android:id="@+id/ll_foot" android:id="@+id/ll_foot"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:viewBindingIgnore="true">
<RelativeLayout
android:id="@+id/rl_item"
android:layout_width="match_parent"
android:layout_height="80dp">
<View
android:visibility="gone"
android:id="@+id/social_red_point"
android:layout_width="8dp"
android:layout_height="8dp"
android:layout_centerVertical="true"
android:layout_marginLeft="3dp"
android:background="@drawable/shape_red_point"
android:gravity="center_vertical" />
<RelativeLayout
android:id="@+id/rl_list_photo"
android:layout_width="@dimen/dp50"
android:layout_height="@dimen/dp50"
android:layout_centerVertical="true"
android:layout_marginLeft="16dp">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/list_photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerVertical="true"
fresco:roundAsCircle="true" />
<RelativeLayout
android:id="@+id/rl_online_bg"
android:layout_width="@dimen/dp30"
android:layout_height="@dimen/dp16"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="@drawable/look_me_online_bg">
<TextView
android:id="@+id/tv_online"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="在线"
android:textColor="@color/white"
android:textSize="10sp" />
</RelativeLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/rl_list_photo"
android:gravity="center_vertical"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:textStyle="bold"
android:id="@+id/social_list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="醉红颜"
android:textColor="@color/one_text"
android:textSize="15sp" />
<ImageView
android:visibility="gone"
android:id="@+id/iv_member_sign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp8"
android:src="@drawable/ic_pvip" />
</LinearLayout>
<TextView
android:ellipsize="end"
android:maxLines="2"
android:layout_marginRight="80dp"
android:id="@+id/tv_sign"
android:layout_marginTop="@dimen/dp6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="很高兴见到你"
android:textColor="@color/three_text"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_focus"
android:layout_width="72dp"
android:layout_height="24dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="16dp"
android:background="@drawable/shape_dddddd_line_oval_bg"
android:gravity="center"
android:text="已关注"
android:textColor="#dddddd"
android:textSize="14sp" />
</RelativeLayout>
<View
android:layout_marginLeft="80dp"
android:layout_width="match_parent"
android:layout_height="2px"
android:background="@color/bottomCuttingLine" />
</LinearLayout>

View File

@@ -1,21 +1,33 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:fresco="http://schemas.android.com/apk/res-auto"> android:orientation="vertical"
tools:viewBindingIgnore="true">
<LinearLayout
android:layout_marginTop="@dimen/dp10"
android:layout_marginBottom="@dimen/dp10"
android:layout_marginLeft="@dimen/dp16"
android:layout_marginRight="@dimen/dp16"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RelativeLayout <RelativeLayout
android:id="@+id/rl_item"
android:layout_width="match_parent"
android:layout_height="80dp">
<View
android:visibility="gone"
android:id="@+id/social_red_point"
android:layout_width="8dp"
android:layout_height="8dp"
android:layout_centerVertical="true"
android:layout_marginLeft="3dp"
android:background="@drawable/shape_red_point"
android:gravity="center_vertical" />
<RelativeLayout
android:id="@+id/rl_list_photo"
android:layout_width="@dimen/dp50" android:layout_width="@dimen/dp50"
android:layout_height="@dimen/dp50"> android:layout_height="@dimen/dp50"
android:layout_centerVertical="true"
android:layout_marginLeft="16dp">
<com.facebook.drawee.view.SimpleDraweeView <com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/list_photo" android:id="@+id/list_photo"
@@ -45,32 +57,73 @@
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_weight="1" android:layout_marginLeft="15dp"
android:layout_gravity="center_vertical" android:layout_toRightOf="@+id/rl_list_photo"
android:layout_marginLeft="@dimen/dp12" android:gravity="center_vertical"
android:orientation="vertical"> android:orientation="vertical">
<TextView <LinearLayout
android:id="@+id/tv_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="瑞恩 Rain" android:orientation="horizontal"
android:textColor="@color/one_text" android:gravity="center_vertical">
android:textSize="15sp"
android:textStyle="bold" />
<TextView <TextView
android:id="@+id/tv_time" android:textStyle="bold"
android:id="@+id/social_list_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="醉红颜"
android:textColor="@color/one_text"
android:textSize="15sp" />
<ImageView
android:visibility="gone"
android:id="@+id/iv_member_sign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp8"
android:src="@drawable/ic_pvip" />
</LinearLayout>
<TextView
android:ellipsize="end"
android:maxLines="2"
android:layout_marginRight="80dp"
android:id="@+id/tv_sign"
android:layout_marginTop="@dimen/dp6" android:layout_marginTop="@dimen/dp6"
android:text="1小时前在线" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="很高兴见到你"
android:textColor="@color/three_text" android:textColor="@color/three_text"
android:textSize="12sp" /> android:textSize="12sp" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/ll_visit_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="16dp"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_gravity="end|right"
android:id="@+id/tv_add_time"
android:layout_marginTop="@dimen/dp6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="01/25访问"
android:textColor="@color/three_text"
android:textSize="12sp" />
<LinearLayout
android:layout_marginTop="@dimen/dp6"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -101,8 +154,22 @@
android:textSize="14sp" android:textSize="14sp"
/> />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</RelativeLayout> <TextView
android:visibility="gone"
android:id="@+id/tv_chat"
android:layout_width="60dp"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="16dp"
android:background="@drawable/shape_button_enable"
android:gravity="center"
android:text="发消息"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
</LinearLayout>

View File

@@ -4,7 +4,7 @@
android:id="@+id/title_bg" android:id="@+id/title_bg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="80dp" android:layout_height="80dp"
android:background="@color/tran_color" android:background="#ffffff"
tools:viewBindingIgnore="true" tools:viewBindingIgnore="true"
android:orientation="vertical"> android:orientation="vertical">