diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainRecommendAdapter.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainRecommendAdapter.java new file mode 100644 index 0000000..7f4edd6 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/main/adapter/MainRecommendAdapter.java @@ -0,0 +1,89 @@ +package com.xuebiping.bolizhuzi.controller.main.adapter; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; + +import androidx.cardview.widget.CardView; + +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.main.LookMeBean; +import com.xuebiping.bolizhuzi.utils.SPUtils; +import com.xuebiping.bolizhuzi.utils.StrU; + +import net.lucode.hackware.magicindicator.buildins.UIUtil; + +import org.jetbrains.annotations.NotNull; + +public class MainRecommendAdapter extends BaseQuickAdapter { + + private Context mContext; + private int mTabType; //1代表推荐 2代表语聊 0代表其他 + + public MainRecommendAdapter(int layoutResId, Context context) { + super(layoutResId); + this.mContext = context; + } + + public MainRecommendAdapter(int layoutResId, Context context, int tabType) { + super(layoutResId); + this.mContext = context; + this.mTabType = tabType; + } + + @Override + protected void convert(@NotNull BaseViewHolder baseViewHolder, LookMeBean lookMeBean) { + recommend(baseViewHolder,lookMeBean); + } + + private void recommend(BaseViewHolder baseViewHolder, LookMeBean lookMeBean) { + + CardView card_view = baseViewHolder.getView(R.id.card_view); + LinearLayout ll_svip_price = baseViewHolder.getView(R.id.ll_svip_price); + + if (mTabType == 1) { + int recommend_layout_change = SPUtils.getInt(mContext, "recommend_layout_change"); + if (recommend_layout_change == 0) { //0代表2格 1代表1格 + LinearLayout.LayoutParams layoutParams = + new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) mContext.getResources().getDimension(R.dimen.dp230)); + card_view.setLayoutParams(layoutParams); + }else if (recommend_layout_change == 1) { + LinearLayout.LayoutParams layoutParams = + new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) mContext.getResources().getDimension(R.dimen.dp336)); + card_view.setLayoutParams(layoutParams); + } + + ll_svip_price.setVisibility(View.VISIBLE); + }else if (mTabType == 2) { + int voice_layout_change = SPUtils.getInt(mContext, "voice_layout_change"); + if (voice_layout_change == 0) { //0代表2格 1代表1格 + LinearLayout.LayoutParams layoutParams = + new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) mContext.getResources().getDimension(R.dimen.dp230)); + card_view.setLayoutParams(layoutParams); + }else if (voice_layout_change == 1) { + LinearLayout.LayoutParams layoutParams = + new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) mContext.getResources().getDimension(R.dimen.dp336)); + card_view.setLayoutParams(layoutParams); + } + + ll_svip_price.setVisibility(View.GONE); + }else { + LinearLayout.LayoutParams layoutParams = + new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) mContext.getResources().getDimension(R.dimen.dp336)); + card_view.setLayoutParams(layoutParams); + + ll_svip_price.setVisibility(View.VISIBLE); + } + + + SimpleDraweeView list_photo = baseViewHolder.getView(R.id.ri_cover); + + list_photo.setImageURI(StrU.getResourcePath(lookMeBean.getAvatar_url(), mContext)); + + } + +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/LookMeBean.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/LookMeBean.java index 6e53f8e..d0c34c0 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/LookMeBean.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/LookMeBean.java @@ -4,6 +4,7 @@ public class LookMeBean { private String id; private String avatar_url; + private int type; public String getId() { return id; @@ -20,4 +21,12 @@ public class LookMeBean { public void setAvatar_url(String avatar_url) { this.avatar_url = avatar_url; } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainRecommendListBean.java b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainRecommendListBean.java new file mode 100644 index 0000000..96c0fe9 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/model/main/MainRecommendListBean.java @@ -0,0 +1,26 @@ +package com.xuebiping.bolizhuzi.model.main; + +import java.util.ArrayList; +import java.util.List; + +public class MainRecommendListBean { + + private List list = new ArrayList<>(); + private List banner = new ArrayList<>(); + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public List getBanner() { + return banner; + } + + public void setBanner(List banner) { + this.banner = banner; + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainFiveStarFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainFiveStarFragment.java new file mode 100644 index 0000000..377a7b5 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainFiveStarFragment.java @@ -0,0 +1,93 @@ +package com.xuebiping.bolizhuzi.view.main; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +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.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.MainRecommendAdapter; +import com.xuebiping.bolizhuzi.model.main.LookMeBean; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class MainFiveStarFragment extends Fragment implements OnRefreshLoadMoreListener { + + private SmartRefreshLayout mSmart_refresh; + private RecyclerView mRv_list; + private MainRecommendAdapter mAdapter; + + private int mPage = 1; + private List mData = new ArrayList<>(); + private LinearLayoutManager mLinearLayoutManager; + + @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) { + View v = inflater.inflate(R.layout.fragment_main_voice, container, false); + initView(v); + getData(mPage); + return v; + } + + private void initView(View v) { + + mSmart_refresh = v.findViewById(R.id.smart_refresh); + mRv_list = v.findViewById(R.id.rv_list); + + mLinearLayoutManager = new LinearLayoutManager(getActivity()); + mRv_list.setLayoutManager(mLinearLayoutManager); + mAdapter = new MainRecommendAdapter(R.layout.item_home_recommend, getActivity()); + mRv_list.setAdapter(mAdapter); + + mSmart_refresh.setOnRefreshLoadMoreListener(this); + } + + private void getData(int page) { + + if (page == 1) { + mData.clear(); + } + + for (int i = 0; i < 10; i++) { + LookMeBean lookMeBean = new LookMeBean(); + lookMeBean.setId(i + ""); + lookMeBean.setAvatar_url("uploads/admin/202403/25/04cf409ab9148f11c0052bb254b5c155.jpg"); + mData.add(lookMeBean); + + } + + finishFresh(); + mAdapter.setList(mData); + } + + public void finishFresh() { + mSmart_refresh.finishLoadMore(); + mSmart_refresh.finishRefresh(); + } + + @Override + public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage++; + getData(mPage); + } + + @Override + public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage = 1; + getData(mPage); + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainFourStarFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainFourStarFragment.java new file mode 100644 index 0000000..0ed719d --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainFourStarFragment.java @@ -0,0 +1,93 @@ +package com.xuebiping.bolizhuzi.view.main; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +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.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.MainRecommendAdapter; +import com.xuebiping.bolizhuzi.model.main.LookMeBean; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class MainFourStarFragment extends Fragment implements OnRefreshLoadMoreListener { + + private SmartRefreshLayout mSmart_refresh; + private RecyclerView mRv_list; + private MainRecommendAdapter mAdapter; + + private int mPage = 1; + private List mData = new ArrayList<>(); + private LinearLayoutManager mLinearLayoutManager; + + @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) { + View v = inflater.inflate(R.layout.fragment_main_voice, container, false); + initView(v); + getData(mPage); + return v; + } + + private void initView(View v) { + + mSmart_refresh = v.findViewById(R.id.smart_refresh); + mRv_list = v.findViewById(R.id.rv_list); + + mLinearLayoutManager = new LinearLayoutManager(getActivity()); + mRv_list.setLayoutManager(mLinearLayoutManager); + mAdapter = new MainRecommendAdapter(R.layout.item_home_recommend, getActivity()); + mRv_list.setAdapter(mAdapter); + + mSmart_refresh.setOnRefreshLoadMoreListener(this); + } + + private void getData(int page) { + + if (page == 1) { + mData.clear(); + } + + for (int i = 0; i < 10; i++) { + LookMeBean lookMeBean = new LookMeBean(); + lookMeBean.setId(i + ""); + lookMeBean.setAvatar_url("uploads/admin/202403/25/04cf409ab9148f11c0052bb254b5c155.jpg"); + mData.add(lookMeBean); + + } + + finishFresh(); + mAdapter.setList(mData); + } + + public void finishFresh() { + mSmart_refresh.finishLoadMore(); + mSmart_refresh.finishRefresh(); + } + + @Override + public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage++; + getData(mPage); + } + + @Override + public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage = 1; + getData(mPage); + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainNewPeopleFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainNewPeopleFragment.java new file mode 100644 index 0000000..94d541a --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainNewPeopleFragment.java @@ -0,0 +1,93 @@ +package com.xuebiping.bolizhuzi.view.main; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +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.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.MainRecommendAdapter; +import com.xuebiping.bolizhuzi.model.main.LookMeBean; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class MainNewPeopleFragment extends Fragment implements OnRefreshLoadMoreListener { + + private SmartRefreshLayout mSmart_refresh; + private RecyclerView mRv_list; + private MainRecommendAdapter mAdapter; + + private int mPage = 1; + private List mData = new ArrayList<>(); + private LinearLayoutManager mLinearLayoutManager; + + @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) { + View v = inflater.inflate(R.layout.fragment_main_voice, container, false); + initView(v); + getData(mPage); + return v; + } + + private void initView(View v) { + + mSmart_refresh = v.findViewById(R.id.smart_refresh); + mRv_list = v.findViewById(R.id.rv_list); + + mLinearLayoutManager = new LinearLayoutManager(getActivity()); + mRv_list.setLayoutManager(mLinearLayoutManager); + mAdapter = new MainRecommendAdapter(R.layout.item_home_recommend, getActivity()); + mRv_list.setAdapter(mAdapter); + + mSmart_refresh.setOnRefreshLoadMoreListener(this); + } + + private void getData(int page) { + + if (page == 1) { + mData.clear(); + } + + for (int i = 0; i < 10; i++) { + LookMeBean lookMeBean = new LookMeBean(); + lookMeBean.setId(i + ""); + lookMeBean.setAvatar_url("uploads/admin/202403/25/04cf409ab9148f11c0052bb254b5c155.jpg"); + mData.add(lookMeBean); + + } + + finishFresh(); + mAdapter.setList(mData); + } + + public void finishFresh() { + mSmart_refresh.finishLoadMore(); + mSmart_refresh.finishRefresh(); + } + + @Override + public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage++; + getData(mPage); + } + + @Override + public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage = 1; + getData(mPage); + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainThreeStarFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainThreeStarFragment.java new file mode 100644 index 0000000..212cd5c --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainThreeStarFragment.java @@ -0,0 +1,93 @@ +package com.xuebiping.bolizhuzi.view.main; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +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.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.MainRecommendAdapter; +import com.xuebiping.bolizhuzi.model.main.LookMeBean; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class MainThreeStarFragment extends Fragment implements OnRefreshLoadMoreListener { + + private SmartRefreshLayout mSmart_refresh; + private RecyclerView mRv_list; + private MainRecommendAdapter mAdapter; + + private int mPage = 1; + private List mData = new ArrayList<>(); + private LinearLayoutManager mLinearLayoutManager; + + @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) { + View v = inflater.inflate(R.layout.fragment_main_voice, container, false); + initView(v); + getData(mPage); + return v; + } + + private void initView(View v) { + + mSmart_refresh = v.findViewById(R.id.smart_refresh); + mRv_list = v.findViewById(R.id.rv_list); + + mLinearLayoutManager = new LinearLayoutManager(getActivity()); + mRv_list.setLayoutManager(mLinearLayoutManager); + mAdapter = new MainRecommendAdapter(R.layout.item_home_recommend, getActivity()); + mRv_list.setAdapter(mAdapter); + + mSmart_refresh.setOnRefreshLoadMoreListener(this); + } + + private void getData(int page) { + + if (page == 1) { + mData.clear(); + } + + for (int i = 0; i < 10; i++) { + LookMeBean lookMeBean = new LookMeBean(); + lookMeBean.setId(i + ""); + lookMeBean.setAvatar_url("uploads/admin/202403/25/04cf409ab9148f11c0052bb254b5c155.jpg"); + mData.add(lookMeBean); + + } + + finishFresh(); + mAdapter.setList(mData); + } + + public void finishFresh() { + mSmart_refresh.finishLoadMore(); + mSmart_refresh.finishRefresh(); + } + + @Override + public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage++; + getData(mPage); + } + + @Override + public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage = 1; + getData(mPage); + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainVoiceFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainVoiceFragment.java new file mode 100644 index 0000000..2719cae --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainVoiceFragment.java @@ -0,0 +1,119 @@ +package com.xuebiping.bolizhuzi.view.main; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +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.MainRecommendAdapter; +import com.xuebiping.bolizhuzi.model.main.BannerBean; +import com.xuebiping.bolizhuzi.model.main.LookMeBean; +import com.xuebiping.bolizhuzi.utils.SPUtils; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class MainVoiceFragment extends Fragment implements OnRefreshLoadMoreListener { + + private SmartRefreshLayout mSmart_refresh; + private RecyclerView mRv_list; + private MainRecommendAdapter mAdapter; + + private int mPage = 1; + private List mData = new ArrayList<>(); + private GridLayoutManager mGridLayoutManager; + private LinearLayoutManager mLinearLayoutManager; + + @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) { + View v = inflater.inflate(R.layout.fragment_main_voice, container, false); + initView(v); + getData(mPage); + return v; + } + + private void initView(View v) { + + mSmart_refresh = v.findViewById(R.id.smart_refresh); + mRv_list = v.findViewById(R.id.rv_list); + + mGridLayoutManager = new GridLayoutManager(getActivity(), 2); + mLinearLayoutManager = new LinearLayoutManager(getActivity()); + + int voice_layout_change = SPUtils.getInt(getActivity(), "voice_layout_change"); + + if (voice_layout_change == 0) { //0代表2格, 1代表1格 + mRv_list.setLayoutManager(mGridLayoutManager); + }else { + mRv_list.setLayoutManager(mLinearLayoutManager); + } + + mAdapter = new MainRecommendAdapter(R.layout.item_home_recommend, getActivity(), 2); + mRv_list.setAdapter(mAdapter); + + mSmart_refresh.setOnRefreshLoadMoreListener(this); + } + + public void layoutChange() { + int voice_layout_change = SPUtils.getInt(getActivity(), "voice_layout_change"); + if (voice_layout_change == 0) { + SPUtils.saveInt(getActivity(), "voice_layout_change", 1); + mRv_list.setLayoutManager(mLinearLayoutManager); + mAdapter.notifyDataSetChanged(); + }else if (voice_layout_change == 1) { + SPUtils.saveInt(getActivity(), "voice_layout_change", 0); + mRv_list.setLayoutManager(mGridLayoutManager); + mAdapter.notifyDataSetChanged(); + } + } + + private void getData(int page) { + + if (page == 1) { + mData.clear(); + } + + for (int i = 0; i < 10; i++) { + LookMeBean lookMeBean = new LookMeBean(); + lookMeBean.setId(i + ""); + lookMeBean.setAvatar_url("uploads/admin/202403/25/04cf409ab9148f11c0052bb254b5c155.jpg"); + mData.add(lookMeBean); + + } + + finishFresh(); + mAdapter.setList(mData); + } + + public void finishFresh() { + mSmart_refresh.finishLoadMore(); + mSmart_refresh.finishRefresh(); + } + + @Override + public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage++; + getData(mPage); + } + + @Override + public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage = 1; + getData(mPage); + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/RecommendFragment2.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/RecommendFragment2.java new file mode 100644 index 0000000..aafc792 --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/RecommendFragment2.java @@ -0,0 +1,202 @@ +package com.xuebiping.bolizhuzi.view.main; + +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.viewpager.widget.ViewPager; + +import com.chad.library.adapter.base.viewholder.BaseViewHolder; +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.constant.ConstUrl; +import com.xuebiping.bolizhuzi.controller.main.adapter.MainLookMeAdapter; +import com.xuebiping.bolizhuzi.controller.main.adapter.MainRecommendAdapter; +import com.xuebiping.bolizhuzi.model.main.BannerBean; +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.GlideImageLoader; +import com.xuebiping.bolizhuzi.utils.SPUtils; +import com.xuebiping.bolizhuzi.view.main.utils.JumpUtils; +import com.youth.banner.Banner; +import com.youth.banner.listener.OnBannerListener; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class RecommendFragment2 extends Fragment implements OnRefreshLoadMoreListener { + + private SmartRefreshLayout mSmart_refresh; + private RecyclerView mRv_list; + private Banner mBn_recommend; + private MainRecommendAdapter mAdapter; + + private int mPage = 1; + private List mData = new ArrayList<>(); + private List mData2 = new ArrayList<>(); + List images = new ArrayList<>(); + private GridLayoutManager mGridLayoutManager; + private LinearLayoutManager mLinearLayoutManager; + private RelativeLayout mRl_banner; + + @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) { + View v = inflater.inflate(R.layout.fragment_recommend2, container, false); + initView(v); + getData(mPage); + return v; + } + + private void initView(View v) { + + mSmart_refresh = v.findViewById(R.id.smart_refresh); + mRv_list = v.findViewById(R.id.rv_list); + mRl_banner = v.findViewById(R.id.rl_banner); + mBn_recommend = v.findViewById(R.id.bn_recommend); + + mGridLayoutManager = new GridLayoutManager(getActivity(), 2); + mLinearLayoutManager = new LinearLayoutManager(getActivity()); + + int recommend_layout_change = SPUtils.getInt(getActivity(), "recommend_layout_change"); + + if (recommend_layout_change == 0) { + mRv_list.setLayoutManager(mGridLayoutManager); + }else if (recommend_layout_change == 1){ + mRv_list.setLayoutManager(mLinearLayoutManager); + } + + mAdapter = new MainRecommendAdapter(R.layout.item_home_recommend, getActivity(), 1); + mRv_list.setAdapter(mAdapter); + + mSmart_refresh.setOnRefreshLoadMoreListener(this); + } + + public void layoutChange() { + int recommend_layout_change = SPUtils.getInt(getActivity(), "recommend_layout_change"); + if (recommend_layout_change == 0) { + SPUtils.saveInt(getActivity(), "recommend_layout_change", 1); + mRv_list.setLayoutManager(mLinearLayoutManager); + mAdapter.notifyDataSetChanged(); + }else if (recommend_layout_change == 1) { + SPUtils.saveInt(getActivity(), "recommend_layout_change", 0); + mRv_list.setLayoutManager(mGridLayoutManager); + mAdapter.notifyDataSetChanged(); + } + } + + private void getData(int page) { + + if (page == 1) { + mData.clear(); + mData2.clear(); + } + + for (int i = 0; i < 10; i++) { + if (i < 3 && page == 1) { + BannerBean bannerBean = new BannerBean(); + bannerBean.setImage("https://img.boxinxinc.cn/images/banner/050ba52eec6c9211436bf82aecfd3f81.jpg"); + mData2.add(bannerBean); + } + + LookMeBean lookMeBean = new LookMeBean(); + lookMeBean.setId(i + ""); + lookMeBean.setAvatar_url("uploads/admin/202403/25/04cf409ab9148f11c0052bb254b5c155.jpg"); + mData.add(lookMeBean); + + } + + finishFresh(); + if (page == 1) { + banner(mData2); + } + mAdapter.setList(mData); + } + + private void banner(List mBanners) { + + images.clear(); + if (null != mBanners) { + if (mBanners.size() != 0) { + for (int i = 0; i < mBanners.size(); i++) { +// images.add(StrU.getResourcePath(mBanners.get(i).getImage(), mContext)); + images.add(mBanners.get(i).getImage()); + } + } + } + + //简单使用 + BaseUtils.setBannerLayoutParams(mBn_recommend).setImages(images) + .setImageLoader(new GlideImageLoader()) + .setOnBannerListener(new OnBannerListener() { + @Override + public void OnBannerClick(int position) { + if (null != mBanners) { + int size = mBanners.size(); + if (size != 0) { + int i = position % size; + JumpUtils.jump(mBanners.get(i).getLink_type(), + mBanners.get(i).getLink_url(), getActivity()); +// mRv_list.setLayoutManager(mLinearLayoutManager); +// mAdapter.notifyDataSetChanged(); + } + } + } + }) + .setDelayTime(3000) + .start() + .setOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int position) { + + } + + @Override + public void onPageScrollStateChanged(int state) { +// if (state == 1) { +// mChannelRefresh.setEnabled(false);//设置不可触发 +// } else if (state == 2) { +// mChannelRefresh.setEnabled(true);//设置可触发 +// } + + } + }); + } + + public void finishFresh() { + mSmart_refresh.finishLoadMore(); + mSmart_refresh.finishRefresh(); + } + + @Override + public void onLoadMore(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage++; + getData(mPage); + } + + @Override + public void onRefresh(@NonNull @NotNull RefreshLayout refreshLayout) { + mPage = 1; + getData(mPage); + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/ShaiXuanDialog.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/ShaiXuanDialog.java index bccbf54..67404de 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/ShaiXuanDialog.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/dialog/ShaiXuanDialog.java @@ -58,13 +58,11 @@ public class ShaiXuanDialog extends Dialog implements View.OnClickListener { Window window = this.getWindow(); window.setGravity(Gravity.BOTTOM); - WindowManager.LayoutParams lp = window.getAttributes(); - DisplayMetrics dm = new DisplayMetrics(); - dm = mContext.getResources().getDisplayMetrics(); - lp.width = (int) ((dm.widthPixels) * 0.8); - lp.height = LinearLayout.LayoutParams.WRAP_CONTENT; - window.setAttributes(lp); - getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + WindowManager.LayoutParams attributes = window.getAttributes(); + attributes.width = WindowManager.LayoutParams.MATCH_PARENT; + attributes.height = WindowManager.LayoutParams.WRAP_CONTENT; + window.setAttributes(attributes); + window.setBackgroundDrawableResource(android.R.color.transparent); } public int isSelect = 0; // 0全部,1男,2女 diff --git a/app/src/main/res/drawable-xhdpi/ic_home_change.png b/app/src/main/res/drawable-xhdpi/ic_home_change.png new file mode 100644 index 0000000..fc6af09 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_home_change.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_home_change.png b/app/src/main/res/drawable-xxhdpi/ic_home_change.png new file mode 100644 index 0000000..37a2026 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_home_change.png differ diff --git a/app/src/main/res/drawable/bg_black_50_line.xml b/app/src/main/res/drawable/bg_black_50_line.xml new file mode 100644 index 0000000..2565845 --- /dev/null +++ b/app/src/main/res/drawable/bg_black_50_line.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_online_round.xml b/app/src/main/res/drawable/bg_online_round.xml new file mode 100644 index 0000000..b3310c7 --- /dev/null +++ b/app/src/main/res/drawable/bg_online_round.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_svip_chat_price.xml b/app/src/main/res/drawable/bg_svip_chat_price.xml new file mode 100644 index 0000000..2d50e6f --- /dev/null +++ b/app/src/main/res/drawable/bg_svip_chat_price.xml @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_main_recommend_bottom_bg.xml b/app/src/main/res/drawable/shape_main_recommend_bottom_bg.xml new file mode 100644 index 0000000..5090b5a --- /dev/null +++ b/app/src/main/res/drawable/shape_main_recommend_bottom_bg.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main_recommend2.xml b/app/src/main/res/layout/fragment_main_recommend2.xml index a50d898..14864e3 100644 --- a/app/src/main/res/layout/fragment_main_recommend2.xml +++ b/app/src/main/res/layout/fragment_main_recommend2.xml @@ -1,7 +1,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_recommend2.xml b/app/src/main/res/layout/fragment_recommend2.xml new file mode 100644 index 0000000..7379a31 --- /dev/null +++ b/app/src/main/res/layout/fragment_recommend2.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_home_recommend.xml b/app/src/main/res/layout/item_home_recommend.xml new file mode 100644 index 0000000..bf87060 --- /dev/null +++ b/app/src/main/res/layout/item_home_recommend.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_shaixuan_dialog.xml b/app/src/main/res/layout/layout_shaixuan_dialog.xml index 588373e..b47b9b3 100644 --- a/app/src/main/res/layout/layout_shaixuan_dialog.xml +++ b/app/src/main/res/layout/layout_shaixuan_dialog.xml @@ -9,64 +9,73 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - - - + android:layout_width="match_parent" + android:layout_height="@dimen/dp56"> + + + + + + + + + android:textColor="@color/black" + android:textSize="17sp" /> + android:text="全部" + android:textColor="#FFFFFF" + android:textSize="@dimen/dp17" /> diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_star.png b/app/src/main/res/mipmap-xhdpi/ic_main_star.png new file mode 100644 index 0000000..cafaeaa Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_main_star.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_select_finish.png b/app/src/main/res/mipmap-xhdpi/ic_select_finish.png new file mode 100644 index 0000000..c02d41f Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_select_finish.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 02c4739..ffc349f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -15,6 +15,7 @@ #4D9AFF #FE3846 #5EA7FF + #80FFFFFF #aaaaaa diff --git a/uikit/src/main/java/com/fengliyan/uikit/bottomtab/BottomTab.java b/uikit/src/main/java/com/fengliyan/uikit/bottomtab/BottomTab.java index 00032da..606fe1a 100644 --- a/uikit/src/main/java/com/fengliyan/uikit/bottomtab/BottomTab.java +++ b/uikit/src/main/java/com/fengliyan/uikit/bottomtab/BottomTab.java @@ -207,28 +207,30 @@ public class BottomTab extends LinearLayout implements View.OnClickListener { if (0 == targetPosition) { ((TextView) findViewById(R.id.bottom_tab_main_text)).setTextColor(ContextCompat.getColor(mContext, R.color.zhimi_bottom_text_selected)); ((ImageView) findViewById(R.id.bottom_tab_main_image)).setImageResource(R.drawable.ic_tab_home2); - setImageLayoutParams(findViewById(R.id.bottom_tab_main_image), 28); + setImageLayoutParams(findViewById(R.id.bottom_tab_main_image), 24); } if (1 == targetPosition) { ((TextView) findViewById(R.id.bottom_tab_dynamic_text)).setTextColor(ContextCompat.getColor(mContext, R.color.zhimi_bottom_text_selected)); ((ImageView) findViewById(R.id.bottom_tab_dynamic_image)).setImageResource(R.drawable.ic_tab_dynamic2); - setImageLayoutParams(findViewById(R.id.bottom_tab_dynamic_image), 28); + setImageLayoutParams(findViewById(R.id.bottom_tab_dynamic_image), 24); } else if (3 == targetPosition) { ((TextView) findViewById(R.id.bottom_tab_news_text)).setTextColor(ContextCompat.getColor(mContext, R.color.zhimi_bottom_text_selected)); - if (TextUtils.isEmpty(avatar)) { - bottom_tab_news_image.setImageResource(R.drawable.ic_tab_news2); - setImageLayoutParams(bottom_tab_news_image, 28); - } else { - setImageLayoutParams(bottom_tab_news_image, 28); - } +// if (TextUtils.isEmpty(avatar)) { +// bottom_tab_news_image.setImageResource(R.drawable.ic_tab_news2); +// setImageLayoutParams(bottom_tab_news_image, 24); +// } else { +// setImageLayoutParams(bottom_tab_news_image, 24); +// } + ((ImageView) findViewById(R.id.bottom_tab_news_image)).setImageResource(R.drawable.ic_tab_news2); + setImageLayoutParams(bottom_tab_news_image, 24); } else if (4 == targetPosition) { ((TextView) findViewById(R.id.bottom_tab_settings_text)).setTextColor(ContextCompat.getColor(mContext, R.color.zhimi_bottom_text_selected)); ((ImageView) findViewById(R.id.bottom_tab_settings_image)).setImageResource(R.drawable.ic_tab_my2); - setImageLayoutParams(findViewById(R.id.bottom_tab_settings_image), 28); + setImageLayoutParams(findViewById(R.id.bottom_tab_settings_image), 24); } else if (2 == targetPosition) { ((TextView) findViewById(R.id.bottom_tab_ranking_text)).setTextColor(ContextCompat.getColor(mContext, R.color.zhimi_bottom_text_selected)); ((ImageView) findViewById(R.id.main_fragment_video)).setImageResource(R.drawable.ic_tab_ranking2); - setImageLayoutParams(findViewById(R.id.main_fragment_video), 28); + setImageLayoutParams(findViewById(R.id.main_fragment_video), 24); } if (targetPosition == currentPosition) { @@ -245,12 +247,14 @@ public class BottomTab extends LinearLayout implements View.OnClickListener { setImageLayoutParams(findViewById(R.id.bottom_tab_dynamic_image), 24); } else if (3 == currentPosition) { ((TextView) findViewById(R.id.bottom_tab_news_text)).setTextColor(ContextCompat.getColor(mContext, R.color.zhimi_bottom_text)); - if (TextUtils.isEmpty(avatar)) { - bottom_tab_news_image.setImageResource(R.drawable.ic_tab_news1); - setImageLayoutParams(bottom_tab_news_image, 24); - } else { - setImageLayoutParams(bottom_tab_news_image, 28); - } +// if (TextUtils.isEmpty(avatar)) { +// bottom_tab_news_image.setImageResource(R.drawable.ic_tab_news1); +// setImageLayoutParams(bottom_tab_news_image, 24); +// } else { +// setImageLayoutParams(bottom_tab_news_image, 28); +// } + setImageLayoutParams(bottom_tab_news_image, 24); + ((ImageView) findViewById(R.id.bottom_tab_news_image)).setImageResource(R.drawable.ic_tab_news1); } else if (4 == currentPosition) { ((TextView) findViewById(R.id.bottom_tab_settings_text)).setTextColor(ContextCompat.getColor(mContext, R.color.zhimi_bottom_text)); ((ImageView) findViewById(R.id.bottom_tab_settings_image)).setImageResource(R.drawable.ic_tab_my1); @@ -292,18 +296,18 @@ public class BottomTab extends LinearLayout implements View.OnClickListener { mNewsCountView.setVisibility(VISIBLE); } Log.i("TAG", "setNewCount: ----------->" + avatar); - if (!TextUtils.isEmpty(avatar)) { - bottom_tab_news_image.setImageURI(avatar); - setImageLayoutParams(bottom_tab_news_image, 28); - } else { - if (3 == mCurrentPosition) { - bottom_tab_news_image.setImageResource(R.drawable.ic_tab_news2); - setImageLayoutParams(bottom_tab_news_image, 28); - } else { - bottom_tab_news_image.setImageResource(R.drawable.ic_tab_news1); - setImageLayoutParams(bottom_tab_news_image, 24); - } - } +// if (!TextUtils.isEmpty(avatar)) { +// bottom_tab_news_image.setImageURI(avatar); +// setImageLayoutParams(bottom_tab_news_image, 28); +// } else { +// if (3 == mCurrentPosition) { +// bottom_tab_news_image.setImageResource(R.drawable.ic_tab_news2); +// setImageLayoutParams(bottom_tab_news_image, 28); +// } else { +// bottom_tab_news_image.setImageResource(R.drawable.ic_tab_news1); +// setImageLayoutParams(bottom_tab_news_image, 24); +// } +// } // String manufacturer = Build.MANUFACTURER; // if (manufacturer != null && manufacturer.length() > 0) {