猜你喜欢功能完成
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.yunbao.main.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -22,6 +23,11 @@ public class SearchRecommendAdapter extends RecyclerView.Adapter {
|
||||
private static final int HEAD = 0;
|
||||
private static final int BODY = 1;
|
||||
private List<SearchRecommendModel> recommendModels = new ArrayList<>();
|
||||
private Activity activity;
|
||||
|
||||
public SearchRecommendAdapter(Activity activity) {
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
@@ -32,7 +38,7 @@ public class SearchRecommendAdapter extends RecyclerView.Adapter {
|
||||
return new SearchRecommendHeardViewHolder(herdView);
|
||||
default:
|
||||
View bodyView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_search_recommend_body, parent, false);
|
||||
return new SearchRecommendBodyViewHolder(bodyView);
|
||||
return new SearchRecommendBodyViewHolder(bodyView, activity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +48,8 @@ public class SearchRecommendAdapter extends RecyclerView.Adapter {
|
||||
SearchRecommendHeardViewHolder heardViewHolder = (SearchRecommendHeardViewHolder) holder;
|
||||
heardViewHolder.setHistory(recommendModels.get(position).getHistoryRecordMap());
|
||||
} else {
|
||||
|
||||
SearchRecommendBodyViewHolder bodyViewHolder = (SearchRecommendBodyViewHolder) holder;
|
||||
bodyViewHolder.showData(recommendModels.get(position).getList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,11 +60,16 @@ public class SearchRecommendAdapter extends RecyclerView.Adapter {
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == (recommendModels.size() - 1)) {
|
||||
return HEAD;
|
||||
} else {
|
||||
if (recommendModels.size() == 1 && recommendModels.get(position).getHistoryRecordMap().size() == 0){
|
||||
return BODY;
|
||||
}else {
|
||||
if (position == (recommendModels.size() - 1) ) {
|
||||
return HEAD;
|
||||
} else {
|
||||
return BODY;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.yunbao.main.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.AnchorRecommendItemModel;
|
||||
import com.yunbao.common.utils.DeviceUtils;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.views.SearchRecommendBodyItemViewHolder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 猜你喜欢适配器
|
||||
*/
|
||||
public class SearchRecommendBodyAdapter extends RecyclerView.Adapter {
|
||||
List<AnchorRecommendItemModel> itemModelList = new ArrayList<>();
|
||||
private Activity activity;
|
||||
|
||||
public SearchRecommendBodyAdapter(Activity activity) {
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_home_lives, parent, false);
|
||||
return new SearchRecommendBodyItemViewHolder(herdView);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
int height = DeviceUtils.getScreenHeight(activity);
|
||||
if (holder instanceof SearchRecommendBodyItemViewHolder) {
|
||||
SearchRecommendBodyItemViewHolder bodyItemViewHolder = (SearchRecommendBodyItemViewHolder) holder;
|
||||
bodyItemViewHolder.showData(itemModelList.get(position), height);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return itemModelList.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置数据源
|
||||
*/
|
||||
public void showData(List<AnchorRecommendItemModel> list) {
|
||||
itemModelList.clear();
|
||||
itemModelList.addAll(list);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@@ -8,13 +8,21 @@ import android.view.ViewGroup;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.AnchorRecommendModel;
|
||||
import com.yunbao.common.bean.SearchRecommendModel;
|
||||
import com.yunbao.common.dialog.LoadingDialog;
|
||||
import com.yunbao.common.event.SearchRecommendEvent;
|
||||
import com.yunbao.common.fragment.BaseFragment;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.main.MainNetManager;
|
||||
import com.yunbao.common.manager.SearchHistoryRecordManager;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.adapter.SearchRecommendAdapter;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -40,27 +48,64 @@ public class SearchRecommendFragment extends BaseFragment {
|
||||
protected void initViews(Bundle savedInstanceState, View contentView) {
|
||||
searchRecommend = contentView.findViewById(R.id.search_recommend_list);
|
||||
|
||||
adapter = new SearchRecommendAdapter();
|
||||
adapter = new SearchRecommendAdapter(getActivity());
|
||||
searchRecommend.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, true));
|
||||
searchRecommend.setAdapter(adapter);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadData() {
|
||||
List<SearchRecommendModel> searchRecommendModels = new ArrayList<>();
|
||||
SearchRecommendModel model = new SearchRecommendModel();
|
||||
Map<String, String> historyRecordMap = new HashMap<>();
|
||||
historyRecordMap.put("大米", "");
|
||||
historyRecordMap.put("開門", "");
|
||||
historyRecordMap.put("芝麻", "");
|
||||
historyRecordMap.put("瓦達上來看沒看", "");
|
||||
historyRecordMap.put("錒", "");
|
||||
historyRecordMap.put("加兩顆蛋", "");
|
||||
historyRecordMap.put("打算", "");
|
||||
searchRecommendModels.add(model.setHistoryRecordMap(historyRecordMap));
|
||||
adapter.addData(searchRecommendModels);
|
||||
//展示网络请求弹窗
|
||||
LoadingDialog fragment = new LoadingDialog();
|
||||
fragment.show(getChildFragmentManager(), "LoadingDialog");
|
||||
MainNetManager.get(getActivity())
|
||||
.anchorRecommend("6", new HttpCallback<AnchorRecommendModel>() {
|
||||
@Override
|
||||
public void onSuccess(AnchorRecommendModel data) {
|
||||
fragment.dismiss();
|
||||
//组装搜索历史数据
|
||||
List<SearchRecommendModel> searchRecommendModels = new ArrayList<>();
|
||||
Map<String, String> historyRecordMap = SearchHistoryRecordManager.get(getActivity()).getHistoryRecordMap();
|
||||
if (historyRecordMap.size() > 0) {
|
||||
SearchRecommendModel model = new SearchRecommendModel();
|
||||
searchRecommendModels.add(model.setHistoryRecordMap(historyRecordMap));
|
||||
}
|
||||
searchRecommendModels.add(0, new SearchRecommendModel().setList(data.getList()));
|
||||
adapter.addData(searchRecommendModels);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
fragment.dismiss();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onSearchRecommendEvent(SearchRecommendEvent event) {
|
||||
//展示网络请求弹窗
|
||||
LoadingDialog fragment = new LoadingDialog();
|
||||
fragment.show(getChildFragmentManager(), "LoadingDialog");
|
||||
MainNetManager.get(getActivity())
|
||||
.anchorRecommend("6", new HttpCallback<AnchorRecommendModel>() {
|
||||
@Override
|
||||
public void onSuccess(AnchorRecommendModel data) {
|
||||
fragment.dismiss();
|
||||
//组装搜索历史数据
|
||||
List<SearchRecommendModel> searchRecommendModels = new ArrayList<>();
|
||||
searchRecommendModels.add(0, new SearchRecommendModel().setList(data.getList()));
|
||||
adapter.addData(searchRecommendModels);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
fragment.dismiss();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.yunbao.main.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.bean.AnchorRecommendItemModel;
|
||||
import com.yunbao.common.custom.RatioRoundImageView;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.utils.formatBigNum;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.utils.MainIconUtil;
|
||||
|
||||
public class SearchRecommendBodyItemViewHolder extends RecyclerView.ViewHolder {
|
||||
private ImageView mCover, liveType, mLiveIco, mType, pkico, drPkIco, pkAvatar;
|
||||
private RatioRoundImageView bgs;
|
||||
private View views;
|
||||
private TextView mLiveState, mTitle, mName, mNum;
|
||||
|
||||
public SearchRecommendBodyItemViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
//展示普通布局,隐藏周星榜布局
|
||||
itemView.findViewById(R.id.live_info_view).setVisibility(View.VISIBLE);
|
||||
itemView.findViewById(R.id.lt_week_list).setVisibility(View.GONE);
|
||||
mCover = itemView.findViewById(R.id.cover);
|
||||
bgs = itemView.findViewById(R.id.bgs);
|
||||
liveType = itemView.findViewById(R.id.live_type);
|
||||
views = itemView.findViewById(R.id.views);
|
||||
mLiveIco = (ImageView) itemView.findViewById(R.id.tv_live_ico);
|
||||
mLiveState = (TextView) itemView.findViewById(R.id.tv_live_state);
|
||||
mType = (ImageView) itemView.findViewById(R.id.type);
|
||||
mTitle = (TextView) itemView.findViewById(R.id.title);
|
||||
mName = (TextView) itemView.findViewById(R.id.name);
|
||||
mNum = (TextView) itemView.findViewById(R.id.num);
|
||||
pkico = (ImageView) itemView.findViewById(R.id.pk_ico);
|
||||
drPkIco = (ImageView) itemView.findViewById(R.id.dr_pk_ico);
|
||||
pkAvatar = (ImageView) itemView.findViewById(R.id.pk_avatar);
|
||||
|
||||
}
|
||||
|
||||
public void showData(AnchorRecommendItemModel model, int height) {
|
||||
Context mContext = itemView.getContext();
|
||||
liveType.setImageDrawable(null);
|
||||
if (model.getContentPicSizeTwo() != null && !model.getContentPicSizeTwo().equals("") && height <= 1920) {
|
||||
Picasso.with(mContext)
|
||||
.load(model.getContentPicSizeTwo())
|
||||
.into(liveType);
|
||||
} else if (model.getContentPicSizeThree() != null && !model.getContentPicSizeThree().equals("") && height > 1920) {
|
||||
Picasso.with(mContext)
|
||||
.load(model.getContentPicSizeThree())
|
||||
.into(liveType);
|
||||
}
|
||||
ImgLoader.display(itemView.getContext(), model.getThumb(), mCover);
|
||||
bgs.setVisibility(View.VISIBLE);
|
||||
pkico.setVisibility(View.GONE);
|
||||
pkAvatar.setVisibility(View.GONE);
|
||||
drPkIco.setVisibility(View.GONE);
|
||||
if (model.getDrpkStatus() != null && model.getDrpkStatus().equals("1")) {
|
||||
drPkIco.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (model.getPkAvatarThumb() != null && !model.getPkAvatarThumb().equals("")) {
|
||||
ImgLoader.display(mContext, model.getPkAvatarThumb(), pkAvatar);
|
||||
pkico.setVisibility(View.VISIBLE);
|
||||
pkAvatar.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mName.setText(model.getUserNicename());
|
||||
if (TextUtils.isEmpty(model.getTitle())) {
|
||||
if (mTitle.getVisibility() == View.VISIBLE) {
|
||||
mTitle.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
if (mTitle.getVisibility() != View.VISIBLE) {
|
||||
mTitle.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mTitle.setText(model.getTitle());
|
||||
}
|
||||
mNum.setText(formatBigNum.formatBigNum(String.valueOf(model.getHotNum())));
|
||||
views.setVisibility(View.GONE);
|
||||
if (model.getIslive() == 1) {
|
||||
views.setVisibility(View.VISIBLE);
|
||||
//直播中
|
||||
mType.setImageResource(MainIconUtil.getLiveTypeIcon(model.getType()));
|
||||
mType.setVisibility(View.VISIBLE);
|
||||
mLiveIco.setImageResource(R.mipmap.icon_main_rest_work);
|
||||
mNum.setVisibility(View.VISIBLE);
|
||||
liveType.setVisibility(View.VISIBLE);
|
||||
mLiveState.setText(R.string.lives_state);
|
||||
} else {
|
||||
views.setVisibility(View.VISIBLE);
|
||||
//休息中
|
||||
mType.setImageResource(MainIconUtil.getLiveTypeIcon(Constants.LIVE_TYPE_RESTING));
|
||||
mType.setVisibility(View.GONE);
|
||||
mLiveIco.setImageResource(R.mipmap.icon_main_rest_spot);
|
||||
mLiveState.setText(R.string.rest_state);
|
||||
liveType.setVisibility(View.GONE);
|
||||
mNum.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,53 @@
|
||||
package com.yunbao.main.views;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.AnchorRecommendItemModel;
|
||||
import com.yunbao.common.event.SearchRecommendEvent;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.adapter.SearchRecommendBodyAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 搜索推荐页头部搜索历史信息
|
||||
*/
|
||||
public class SearchRecommendBodyViewHolder extends RecyclerView.ViewHolder {
|
||||
public SearchRecommendBodyViewHolder(@NonNull View itemView) {
|
||||
private RecyclerView liveList;
|
||||
private SearchRecommendBodyAdapter adapter;
|
||||
private ImageView changeBatch;
|
||||
|
||||
public SearchRecommendBodyViewHolder(@NonNull View itemView, Activity activity) {
|
||||
super(itemView);
|
||||
liveList = itemView.findViewById(R.id.live_list);
|
||||
changeBatch = itemView.findViewById(R.id.change_batch);
|
||||
liveList.setLayoutManager(new GridLayoutManager(itemView.getContext(), 2, GridLayoutManager.VERTICAL, false));
|
||||
adapter = new SearchRecommendBodyAdapter(activity);
|
||||
liveList.setAdapter(adapter);
|
||||
changeBatch.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Bus.get().post(new SearchRecommendEvent());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 猜你喜欢数据
|
||||
*
|
||||
* @param list
|
||||
*/
|
||||
public void showData(List<AnchorRecommendItemModel> list) {
|
||||
adapter.showData(list);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -7,5 +7,6 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/search_recommend_list"
|
||||
android:layout_width="match_parent"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
@@ -2,10 +2,35 @@
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:orientation="vertical"
|
||||
android:padding="11dp">
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/type_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/change_batch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|right"
|
||||
android:background="@mipmap/icon_cange" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/anchor_more"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:drawablePadding="5dp"
|
||||
android:text="@string/you_may_also_like"
|
||||
android:textColor="#FF000000"
|
||||
android:textSize="16sp" />
|
||||
</FrameLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/live_list"
|
||||
|
||||
Reference in New Issue
Block a user