首页UI修改:推荐和派对tab

This commit is contained in:
huangjian
2021-12-01 21:06:55 +08:00
parent 02b2e6b782
commit 22b835b262
71 changed files with 1671 additions and 373 deletions

View File

@@ -0,0 +1,35 @@
package com.yizhuan.erban.avroom.adapter;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import java.util.List;
/**
* Created by MadisonRong on 25/04/2018.
*/
public class RoomVPAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
public RoomVPAdapter(FragmentManager fm, List<Fragment> fragmentList) {
super(fm,FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
this.fragmentList = fragmentList;
}
public RoomVPAdapter(FragmentManager fm) {
super(fm,FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}

View File

@@ -5,8 +5,11 @@ import androidx.lifecycle.MutableLiveData
import com.yizhuan.erban.base.BaseViewModel
import com.yizhuan.xchat_android_core.bean.response.ListResult
import com.yizhuan.xchat_android_core.home.bean.BannerInfo
import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo
import com.yizhuan.xchat_android_core.home.model.HomeModel
import com.yizhuan.xchat_android_library.utils.SingleToastUtil
class HomeViewModel : BaseViewModel() {
@@ -16,12 +19,31 @@ class HomeViewModel : BaseViewModel() {
private val _hotRoomLiveData = MutableLiveData<ListResult<HomeRoom>>()
val hotRoomLiveData: LiveData<ListResult<HomeRoom>> = _hotRoomLiveData
private val _concernsLiveData = MutableLiveData<List<HomeConcernsInfo>>()
val concernsLiveData: LiveData<List<HomeConcernsInfo>> = _concernsLiveData
private val _collectLiveData = MutableLiveData<ListResult<HomeRoom>>()
val collectLiveData: LiveData<ListResult<HomeRoom>> = _collectLiveData
private val _tagLiveData = MutableLiveData<List<HomeTagInfo>>()
val tagLiveData: LiveData<List<HomeTagInfo>> = _tagLiveData
private val _commonRoomLiveData = MutableLiveData<ListResult<HomeRoom>>()
val commonRoomLiveData: LiveData<ListResult<HomeRoom>> = _commonRoomLiveData
fun getBannerInfo() {
safeLaunch {
_bannerLiveData.value = HomeModel.getHomeBanner("9")
}
}
fun getTagInfo() {
safeLaunch {
_tagLiveData.value = HomeModel.getHomeTag()
}
}
fun getHotRoom(pageNum: Int, pageSize: Int) {
safeLaunch(
onError = {
@@ -33,4 +55,36 @@ class HomeViewModel : BaseViewModel() {
}
)
}
fun getCommonRoom(tabId: Int,pageNum: Int, pageSize: Int) {
safeLaunch(
onError = {
_commonRoomLiveData.value = ListResult.failed(pageNum)
},
block = {
val result = HomeModel.getCommonRoom(tabId,pageNum, pageSize)
_commonRoomLiveData.value = ListResult.success(result, pageNum)
}
)
}
fun getConcernsRoom() {
safeLaunch {
_concernsLiveData.value = HomeModel.getConcernsRoom()
}
}
fun getCollectRoom(pageNum: Int, pageSize: Int) {
safeLaunch(
onError = {
_collectLiveData.value = ListResult.failed(pageNum)
},
block = {
val result = HomeModel.getCollectRoom(pageNum,pageSize)
_collectLiveData.value = ListResult.success(result, pageNum)
}
)
}
}

View File

@@ -1,34 +1,25 @@
package com.yizhuan.erban.home.adapter;
import android.content.Context;
import android.graphics.Color;
import androidx.annotation.Nullable;
import androidx.annotation.NonNull;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.yizhuan.erban.R;
import com.yizhuan.erban.common.widget.CircleImageView;
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo;
import java.util.List;
public class HomeConcernsAdapter extends BaseQuickAdapter<HomeConcernsInfo, BaseViewHolder> {
private Context mContext;
public HomeConcernsAdapter(@Nullable List<HomeConcernsInfo> data, Context context) {
super(R.layout.item_home_concerns, data);
mContext = context;
public HomeConcernsAdapter() {
super(R.layout.item_home_concerns, null);
}
@Override
protected void convert(BaseViewHolder helper, HomeConcernsInfo item) {
protected void convert(@NonNull BaseViewHolder helper, HomeConcernsInfo item) {
if (item == null) {
return;
}
// helper.setVisible(R.id.tv_room_name,true);
CircleImageView circleImageView = helper.getView(R.id.civ_room_avatar);
ImageLoadUtilsV2.loadImage(circleImageView, item.getAvatar());
helper.setText(R.id.tv_room_name, item.getFollowType() == 1 ? "" : item.getName());

View File

@@ -1,44 +1,36 @@
package com.yizhuan.erban.home.adapter;
package com.yizhuan.erban.home.adapter
import android.widget.ImageView;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.yizhuan.erban.R;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2;
import com.yizhuan.xchat_android_core.home.bean.HomePlayInfo;
import com.yizhuan.xchat_android_core.utils.TextUtils;
import org.jetbrains.annotations.NotNull;
import jp.wasabeef.glide.transformations.BlurTransformation;
import android.widget.ImageView
import androidx.core.view.isGone
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.yizhuan.erban.R
import com.yizhuan.xchat_android_core.home.bean.HomePlayInfo
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.xchat_android_core.utils.TextUtils
/**
* create by lvzebiao @2019/11/13
*/
public class HomePlayAdapter extends BaseQuickAdapter<HomePlayInfo, BaseViewHolder> {
public HomePlayAdapter() {
super(R.layout.item_home_play);
class HomePlayAdapter : BaseQuickAdapter<HomePlayInfo, BaseViewHolder>(R.layout.item_home_play) {
override fun convert(helper: BaseViewHolder, item: HomePlayInfo) {
helper.setText(R.id.tv_room_title, item.title)
helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict))
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict)
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_room_image), item.avatar)
helper.setText(R.id.tv_online_number, "${item.onlineNum}")
val avatars: Array<ImageView> = arrayOf(
helper.getView(R.id.iv_avatar_0),
helper.getView(R.id.iv_avatar_1),
helper.getView(R.id.iv_avatar_2),
helper.getView(R.id.iv_avatar_3),
helper.getView(R.id.iv_avatar_4)
)
for (i in avatars.indices) {
val avatarUrl = item.micUsers?.getOrNull(i)?.avatar
avatars[i].isGone = avatarUrl.isNullOrBlank()
avatars[i].load(avatarUrl)
}
}
@Override
protected void convert(@NotNull BaseViewHolder helper, HomePlayInfo item) {
helper.setText(R.id.tv_title, item.getTitle());
helper.setVisible(R.id.iv_tag, !TextUtils.isEmptyText(item.getTagPict()));
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_tag), item.getTagPict());
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_avatar), item.getAvatar());
GlideApp.with(mContext)
.load(item.getAvatar())
.transform(new BlurTransformation(20, 1), new CenterCrop())
.into((ImageView) helper.getView(R.id.iv_blur_bg));
}
}
}

View File

@@ -1,6 +1,8 @@
package com.yizhuan.erban.home.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
@@ -20,12 +22,14 @@ import java.util.List;
public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
private final Context mContext;
private final List<? extends CharSequence> mTitleList;
private boolean mIsShowIndicator;
public MainMagicIndicatorAdapter(Context context, List<? extends CharSequence> charSequences, boolean isShowIndicator) {
private int textSize = 24;
private float minScale = 0.83f;
private boolean showIndicator =true;
public MainMagicIndicatorAdapter(Context context, List<? extends CharSequence> charSequences ) {
this.mContext = context;
this.mTitleList = charSequences;
this.mIsShowIndicator = isShowIndicator;
}
@Override
@@ -39,8 +43,8 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
ScaleTransitionPagerTitleView scaleTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context, true);
scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(context,R.color.color_444444));
scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(context,R.color.color_333333));
scaleTransitionPagerTitleView.setMinScale(0.83f);
scaleTransitionPagerTitleView.setTextSize(24);
scaleTransitionPagerTitleView.setMinScale(minScale);
scaleTransitionPagerTitleView.setTextSize(textSize);
int padding = UIUtil.dip2px(context, 5);
scaleTransitionPagerTitleView.setPadding(padding, 0, padding, 0);
scaleTransitionPagerTitleView.setText(mTitleList.get(i));
@@ -49,9 +53,6 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
mOnItemSelectListener.onItemSelect(i, scaleTransitionPagerTitleView);
}
if (mOnBottomItemSelectListener != null) {
mOnBottomItemSelectListener.onBottomItemSelect(i, scaleTransitionPagerTitleView);
}
});
return scaleTransitionPagerTitleView;
}
@@ -59,21 +60,44 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
@Override
public IPagerIndicator getIndicator(Context context) {
if (!mIsShowIndicator) return null;
if (!showIndicator) return null;
LinePagerIndicator indicator = new LinePagerIndicator(context);
indicator.setMode(LinePagerIndicator.MODE_EXACTLY);
indicator.setLineHeight(UIUtil.dip2px(mContext, 5));
indicator.setRoundRadius(UIUtil.dip2px(mContext, 5));
indicator.setLineWidth(UIUtil.dip2px(mContext, 9));
indicator.setColors(context.getResources().getColor(R.color.appColor));
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
indicator.setLineHeight(UIUtil.dip2px(mContext, 10));
indicator.setRoundRadius(UIUtil.dip2px(mContext, 10));
indicator.setLineWidth(UIUtil.dip2px(mContext, 48));
indicator.setColors(Color.parseColor("#FFFFD15A"));
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.END;
lp.bottomMargin = UIUtil.dip2px(mContext, 0);
indicator.setLayoutParams(lp);
return indicator;
}
public int getTextSize() {
return textSize;
}
public void setTextSize(int textSize) {
this.textSize = textSize;
}
public float getMinScale() {
return minScale;
}
public void setMinScale(float minScale) {
this.minScale = minScale;
}
public boolean isShowIndicator() {
return showIndicator;
}
public void setShowIndicator(boolean showIndicator) {
this.showIndicator = showIndicator;
}
private OnItemSelectListener mOnItemSelectListener;
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
@@ -83,14 +107,4 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
public interface OnItemSelectListener {
void onItemSelect(int position, TextView view);
}
private OnBottomItemSelectListener mOnBottomItemSelectListener;
public void setOnBottomItemSelectListener(OnBottomItemSelectListener onBottomItemSelectListener) {
mOnBottomItemSelectListener = onBottomItemSelectListener;
}
public interface OnBottomItemSelectListener {
void onBottomItemSelect(int position, TextView view);
}
}

View File

@@ -0,0 +1,94 @@
package com.yizhuan.erban.home.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.yizhuan.erban.R;
import com.yizhuan.erban.ui.widget.XRecyclerView.ScaleTransitionPagerTitleView;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.indicators.WrapPagerIndicator;
import java.util.List;
public class PartyMagicIndicatorAdapter extends CommonNavigatorAdapter {
private final Context mContext;
private final List<? extends CharSequence> mTitleList;
private int textSize = 14;
private float minScale = 1f;
public PartyMagicIndicatorAdapter(Context context, List<? extends CharSequence> charSequences ) {
this.mContext = context;
this.mTitleList = charSequences;
}
@Override
public int getCount() {
return mTitleList == null ? 0 : mTitleList.size();
}
@Override
public IPagerTitleView getTitleView(Context context, final int i) {
ScaleTransitionPagerTitleView scaleTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context, true);
scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(context,R.color.color_444444));
scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(context,R.color.color_333333));
scaleTransitionPagerTitleView.setMinScale(minScale);
scaleTransitionPagerTitleView.setTextSize(textSize);
int padding = UIUtil.dip2px(context, 5);
scaleTransitionPagerTitleView.setPadding(padding, 0, padding, 0);
scaleTransitionPagerTitleView.setText(mTitleList.get(i));
scaleTransitionPagerTitleView.setOnClickListener(view -> {
if (mOnItemSelectListener != null) {
mOnItemSelectListener.onItemSelect(i, scaleTransitionPagerTitleView);
}
});
return scaleTransitionPagerTitleView;
}
@Override
public IPagerIndicator getIndicator(Context context) {
WrapPagerIndicator indicator = new WrapPagerIndicator(context);
indicator.setFillColor(Color.parseColor("#FFFFA936"));
return indicator;
}
public int getTextSize() {
return textSize;
}
public void setTextSize(int textSize) {
this.textSize = textSize;
}
public float getMinScale() {
return minScale;
}
public void setMinScale(float minScale) {
this.minScale = minScale;
}
private OnItemSelectListener mOnItemSelectListener;
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
mOnItemSelectListener = onItemSelectListener;
}
public interface OnItemSelectListener {
void onItemSelect(int position, TextView view);
}
}

View File

@@ -0,0 +1,46 @@
package com.yizhuan.erban.home.adapter
import android.widget.ImageView
import androidx.core.view.isGone
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.activity.AVRoomActivity
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
import com.yizhuan.xchat_android_core.utils.TextUtils
class RoomCommonAdapter : BaseQuickAdapter<HomeRoom, BaseViewHolder>(R.layout.item_room_common) {
override fun convert(helper: BaseViewHolder, item: HomeRoom) {
helper.apply {
getView<ImageView>(R.id.iv_room_image).load(item.avatar)
setText(R.id.tv_online_number, "${item.onlineNum}")
setText(R.id.tv_room_title, item.title)
itemView.setOnClickListener {
AVRoomActivity.start(mContext, item.uid)
}
setText(R.id.tv_id, "ID:${item.erbanNo}")
}
helper.setVisible(R.id.tv_in_pk, item.isCrossPking)
helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict))
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict)
val avatars: Array<ImageView> = arrayOf(
helper.getView(R.id.iv_avatar_0),
helper.getView(R.id.iv_avatar_1),
helper.getView(R.id.iv_avatar_2),
helper.getView(R.id.iv_avatar_3),
helper.getView(R.id.iv_avatar_4)
)
for (i in avatars.indices) {
val avatarUrl = item.micUsers?.getOrNull(i)?.avatar
avatars[i].isGone = avatarUrl.isNullOrBlank()
avatars[i].load(avatarUrl)
}
}
}

View File

@@ -5,16 +5,18 @@ import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.activity.AVRoomActivity
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
import com.yizhuan.xchat_android_core.utils.TextUtils
class HotRoomAdapter : BaseQuickAdapter<HomeRoom, BaseViewHolder>(R.layout.item_room_common) {
class RoomGameAdapter : BaseQuickAdapter<HomeRoom, BaseViewHolder>(R.layout.item_room_common) {
override fun convert(helper: BaseViewHolder, item: HomeRoom) {
helper.apply {
getView<ImageView>(R.id.iv_room_image).load(item.avatar, 8f)
getView<ImageView>(R.id.iv_room_image).load(item.avatar)
setText(R.id.tv_online_number, "${item.onlineNum}人热聊中")
setText(R.id.tv_room_title, item.title)
setText(R.id.tv_room_tag, item.roomTag)
@@ -22,6 +24,9 @@ class HotRoomAdapter : BaseQuickAdapter<HomeRoom, BaseViewHolder>(R.layout.item_
AVRoomActivity.start(mContext, item.uid)
}
}
helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict))
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict)
}
}

View File

@@ -0,0 +1,48 @@
package com.yizhuan.erban.home.adapter
import android.widget.ImageView
import androidx.core.view.isGone
import androidx.core.view.isVisible
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.activity.AVRoomActivity
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
import com.yizhuan.xchat_android_core.utils.TextUtils
class RoomHotAdapter : BaseQuickAdapter<HomeRoom, BaseViewHolder>(R.layout.item_room_hot) {
override fun convert(helper: BaseViewHolder, item: HomeRoom) {
helper.apply {
getView<ImageView>(R.id.iv_room_image).load(item.avatar)
setText(R.id.tv_online_number, "${item.onlineNum}")
setText(R.id.tv_room_title, item.title)
itemView.setOnClickListener {
AVRoomActivity.start(mContext, item.uid)
}
setText(R.id.tv_id, "ID:${item.erbanNo}")
}
helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict))
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict)
helper.setVisible(R.id.tv_in_pk, item.isCrossPking)
val avatars: Array<ImageView> = arrayOf(
helper.getView(R.id.iv_avatar_0),
helper.getView(R.id.iv_avatar_1),
helper.getView(R.id.iv_avatar_2),
helper.getView(R.id.iv_avatar_3),
helper.getView(R.id.iv_avatar_4)
)
for (i in avatars.indices) {
val avatarUrl = item.micUsers?.getOrNull(i)?.avatar
avatars[i].isGone = avatarUrl.isNullOrBlank()
avatars[i].load(avatarUrl)
}
}
}

View File

@@ -0,0 +1,46 @@
package com.yizhuan.erban.home.adapter
import android.widget.ImageView
import androidx.core.view.isGone
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.activity.AVRoomActivity
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
import com.yizhuan.xchat_android_core.utils.TextUtils
class RoomLikeAdapter : BaseQuickAdapter<HomeRoom, BaseViewHolder>(R.layout.item_room_like) {
override fun convert(helper: BaseViewHolder, item: HomeRoom) {
helper.apply {
getView<ImageView>(R.id.iv_room_image).load(item.avatar)
setText(R.id.tv_online_number, "${item.onlineNum}")
setText(R.id.tv_room_title, item.title)
itemView.setOnClickListener {
AVRoomActivity.start(mContext, item.uid)
}
setText(R.id.tv_id, "ID:${item.erbanNo}")
}
helper.setVisible(R.id.tv_in_pk, item.isCrossPking)
helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict))
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict)
val avatars: Array<ImageView> = arrayOf(
helper.getView(R.id.iv_avatar_0),
helper.getView(R.id.iv_avatar_1),
helper.getView(R.id.iv_avatar_2),
helper.getView(R.id.iv_avatar_3),
helper.getView(R.id.iv_avatar_4)
)
for (i in avatars.indices) {
val avatarUrl = item.micUsers?.getOrNull(i)?.avatar
avatars[i].isGone = avatarUrl.isNullOrBlank()
avatars[i].load(avatarUrl)
}
}
}

View File

@@ -24,7 +24,7 @@ import java.util.*
* 音游首页
*/
class HomeFragment : BaseFragment(), View.OnClickListener,
MainMagicIndicatorAdapter.OnBottomItemSelectListener {
MainMagicIndicatorAdapter.OnItemSelectListener {
private lateinit var mBinding: FragmentHomeBinding
override fun onClick(v: View) {
when (v.id) {
@@ -69,8 +69,9 @@ class HomeFragment : BaseFragment(), View.OnClickListener,
fragmentPos.add(PartyFragment.newInstance())
val commonNavigator = CommonNavigator(context)
commonNavigator.setTitleWrapContent(true)
val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList, false)
magicIndicatorAdapter.setOnBottomItemSelectListener(this)
val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList)
magicIndicatorAdapter.textSize = 24
magicIndicatorAdapter.setOnItemSelectListener(this)
commonNavigator.adapter = magicIndicatorAdapter
mBinding.magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
@@ -83,7 +84,7 @@ class HomeFragment : BaseFragment(), View.OnClickListener,
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager)
}
override fun onBottomItemSelect(position: Int, view: TextView?) {
override fun onItemSelect(position: Int, view: TextView?) {
mBinding.viewPager.currentItem = position
}

View File

@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.os.Bundle;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.yizhuan.erban.R;
@@ -53,7 +54,7 @@ public class HomePlayFragment extends BaseFragment {
playAdapter = new HomePlayAdapter();
rvDelegate = new RVDelegate.Builder<HomePlayInfo>()
.setAdapter(playAdapter)
.setLayoutManager(new GridLayoutManager(mContext, 2))
.setLayoutManager(new LinearLayoutManager(mContext))
.setRecyclerView(recyclerView)
.setEmptyView(EmptyViewHelper.createEmptyView(getContext(), "暂无数据"))
.build();

View File

@@ -5,15 +5,16 @@ import android.widget.LinearLayout
import android.widget.TextView
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import com.coorchice.library.utils.LogUtils
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter
import com.yizhuan.erban.avroom.adapter.RoomVPAdapter
import com.yizhuan.erban.base.BaseFragment
import com.yizhuan.erban.databinding.FragmentPartyBinding
import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter
import com.yizhuan.erban.home.HomeViewModel
import com.yizhuan.erban.home.adapter.PartyMagicIndicatorAdapter
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
import com.yizhuan.xchat_android_core.auth.AuthModel
import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
import org.greenrobot.eventbus.EventBus
@@ -23,22 +24,24 @@ import org.greenrobot.eventbus.ThreadMode
/**
* 音游首页
*/
class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectListener {
class PartyFragment : BaseFragment(), PartyMagicIndicatorAdapter.OnItemSelectListener {
private lateinit var mBinding: FragmentPartyBinding
private var isLoaded = false
private val mFragments: ArrayList<Fragment> = ArrayList()
private val mTabInfoList: ArrayList<CharSequence> = ArrayList()
private val homeViewModel: HomeViewModel by activityViewModels()
companion object{
companion object {
fun newInstance(): PartyFragment {
val args = Bundle()
val fragment = PartyFragment()
fragment.arguments = args
return fragment
}
}
override fun getRootLayoutId(): Int {
return R.layout.fragment_party
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -50,34 +53,20 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList
EventBus.getDefault().unregister(this)
}
override fun getRootLayoutId(): Int {
return R.layout.fragment_party
}
override fun onFindViews() {
mBinding = DataBindingUtil.bind(mView)!!
}
override fun onSetListener() {
}
override fun initiate() {
if (AuthModel.get().currentUid != 0L) {
tryLoadData(false)
homeViewModel.getTagInfo()
homeViewModel.tagLiveData.observe(this) {
it?.let {
onGetHomeTagSuccess(it)
}
}
}
//尝试加载不需要登录就可以加载的数据
private fun tryLoadData(refresh: Boolean) {
if (!isLoaded || refresh) {
isLoaded = true
}
}
fun onGetHomeTagSuccess(info: List<HomeTagInfo>) {
private fun onGetHomeTagSuccess(info: List<HomeTagInfo>) {
var changed = false
val oldTabInfoList: List<CharSequence> = ArrayList<CharSequence>(mTabInfoList)
for (tagInfo in info) {
@@ -102,26 +91,37 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList
title = name
mTabInfoList.add(title)
val tabId: Int = info[i].id
fragment = HomeTabHomeFragment.newInstance(tabId)
fragment = when (title) {
"喜欢" -> {
RoomLikeFragment.newInstance()
}
"小游戏" -> {
RoomGameFragment.newInstance()
}
else -> {
RoomCommonFragment.newInstance(tabId)
}
}
mFragments.add(fragment)
}
val commonNavigator = CommonNavigator(context)
commonNavigator.setTitleWrapContent(true)
val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, mTabInfoList, false)
commonNavigator.titleMargin = 8
val magicIndicatorAdapter = PartyMagicIndicatorAdapter(context, mTabInfoList)
magicIndicatorAdapter.textSize = 14
magicIndicatorAdapter.setOnItemSelectListener(this)
commonNavigator.adapter = magicIndicatorAdapter
mBinding.magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
mBinding.viewPager.offscreenPageLimit = 5
mBinding.viewPager.adapter = RoomContributeListAdapter(
mBinding.viewPager.adapter = RoomVPAdapter(
childFragmentManager,
mFragments
)
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager)
} else {
for (fragment in mFragments) {
if (fragment is LazyLoadFragment) {
fragment.tryLoadData()
if (fragment is RoomCommonFragment) {
fragment.loadData(true)
}
}
}
@@ -134,7 +134,7 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList
*/
@Subscribe(threadMode = ThreadMode.MAIN)
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
tryLoadData(true)
}
override fun onItemSelect(position: Int, view: TextView?) {

View File

@@ -10,18 +10,15 @@ import android.widget.TextView
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.scwang.smartrefresh.layout.internal.ProgressDrawable
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter
import com.yizhuan.erban.avroom.adapter.RoomVPAdapter
import com.yizhuan.erban.base.BaseFragment
import com.yizhuan.erban.databinding.FragmentRecommendBinding
import com.yizhuan.erban.home.HomeViewModel
import com.yizhuan.erban.home.adapter.BannerAdapter
import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter
import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter.OnBottomItemSelectListener
import com.yizhuan.erban.ui.widget.OnPageSelectedListener
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
import com.yizhuan.erban.ui.widget.rollviewpager.Util
@@ -29,7 +26,6 @@ import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView
import com.yizhuan.xchat_android_core.auth.AuthModel
import com.yizhuan.xchat_android_core.home.bean.BannerInfo
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel
import com.yizhuan.xchat_android_core.statistic.StatisticManager
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol
import com.yizhuan.xchat_android_core.user.event.LoadLoginUserInfoEvent
@@ -43,7 +39,8 @@ import java.util.*
/**
* 音游首页
*/
class RecommendFragment : BaseFragment(), View.OnClickListener, OnBottomItemSelectListener {
class RecommendFragment : BaseFragment(), View.OnClickListener,
MainMagicIndicatorAdapter.OnItemSelectListener {
private lateinit var mBinding: FragmentRecommendBinding
private var mFragmentsBottom: MutableList<Fragment> = ArrayList()
private lateinit var bannerAdapter: BannerAdapter
@@ -54,7 +51,6 @@ class RecommendFragment : BaseFragment(), View.OnClickListener, OnBottomItemSele
companion object {
fun newInstance(): RecommendFragment {
val args = Bundle()
val fragment = RecommendFragment()
fragment.arguments = args
return fragment
@@ -132,40 +128,24 @@ class RecommendFragment : BaseFragment(), View.OnClickListener, OnBottomItemSele
*/
private fun initTitleTab() {
val tagList: MutableList<String> = ArrayList()
tagList.add("热门房间")
tagList.add("组队开黑")
mFragmentsBottom.add(RoomHotFragment.newInstance())
tagList.add("热门房间")
mFragmentsBottom.add(HomePlayFragment.newInstance())
mFragmentsBottom.add(RoomHotFragment.newInstance())
val commonNavigator = CommonNavigator(context)
commonNavigator.setTitleWrapContent(true)
val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList, false)
magicIndicatorAdapter.setOnBottomItemSelectListener(this)
val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList)
magicIndicatorAdapter.textSize = 16
magicIndicatorAdapter.setOnItemSelectListener(this)
commonNavigator.adapter = magicIndicatorAdapter
mBinding.magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
mBinding.viewPager.offscreenPageLimit = 5
mBinding.viewPager.adapter =
RoomContributeListAdapter(childFragmentManager, mFragmentsBottom)
RoomVPAdapter(childFragmentManager, mFragmentsBottom)
ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager)
}
/**
* 底部动态聊天交友
*
* @param position
* @param view
*/
override fun onBottomItemSelect(position: Int, view: TextView) {
if (mFragmentsBottom.isEmpty()) {
return
}
mBinding.viewPager.currentItem = position
if (position == 1) {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.Event.EVENT_HOME_SCREEN_DONG_TAI_CLICK, "首页_聊天交友切换到动态")
}
}
/**
* 用户信息更新
*
@@ -242,4 +222,15 @@ class RecommendFragment : BaseFragment(), View.OnClickListener, OnBottomItemSele
bannerAdapter.notifyDataSetChanged()
}
override fun onItemSelect(position: Int, view: TextView?) {
if (mFragmentsBottom.isEmpty()) {
return
}
mBinding.viewPager.currentItem = position
if (position == 1) {
StatisticManager.Instance()
.onEvent(StatisticsProtocol.Event.EVENT_HOME_SCREEN_DONG_TAI_CLICK, "首页_聊天交友切换到动态")
}
}
}

View File

@@ -0,0 +1,68 @@
package com.yizhuan.erban.home.fragment
import android.annotation.SuppressLint
import android.os.Bundle
import androidx.fragment.app.viewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.yizhuan.erban.avroom.activity.AVRoomActivity
import com.yizhuan.erban.base.BaseViewBindingFragment
import com.yizhuan.erban.common.EmptyViewHelper
import com.yizhuan.erban.databinding.FragmentRoomCommonBinding
import com.yizhuan.erban.home.HomeViewModel
import com.yizhuan.erban.home.adapter.RoomCommonAdapter
import com.yizhuan.erban.ui.utils.RVDelegate
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
class RoomCommonFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>() {
companion object {
fun newInstance(tabID: Int): RoomCommonFragment {
val args = Bundle()
args.putInt("tab_id", tabID)
val fragment = RoomCommonFragment()
fragment.arguments = args
return fragment
}
}
private val tabID: Int by lazy { arguments?.getInt("tab_id") ?: -1 }
private var pageNum: Int = 1
private val pageSize = 20
private val mAdapter = RoomCommonAdapter()
private lateinit var rvDelegate: RVDelegate<HomeRoom>
private val homeViewModel: HomeViewModel by viewModels()
override fun init() {
rvDelegate = RVDelegate.Builder<HomeRoom>()
.setAdapter(mAdapter)
.setLayoutManager(LinearLayoutManager(mContext))
.setPageSize(20)
.setEmptyView(EmptyViewHelper.createEmptyView(mContext, "暂无房间"))
.setRefreshLayout(binding.refreshLayout)
.setRecyclerView(binding.recyclerView)
.build()
mAdapter.setOnItemClickListener { _, _, position ->
mAdapter.getItem(position)?.let { AVRoomActivity.start(context, it.uid) }
}
mAdapter.setOnLoadMoreListener({
loadData(false)
}, binding.recyclerView)
binding.refreshLayout.setOnRefreshListener {
loadData(true)
}
homeViewModel.commonRoomLiveData.observe(this) {
rvDelegate.loadData(it)
}
loadData(true)
}
@SuppressLint("CheckResult")
fun loadData(isRefresh: Boolean) {
binding.refreshLayout.isRefreshing = isRefresh
pageNum = if (isRefresh) 1 else (pageNum + 1)
homeViewModel.getCommonRoom(tabID, pageNum, pageSize)
}
}

View File

@@ -0,0 +1,56 @@
package com.yizhuan.erban.home.fragment
import android.os.Bundle
import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.yizhuan.erban.base.BaseViewBindingFragment
import com.yizhuan.erban.common.EmptyViewHelper
import com.yizhuan.erban.databinding.FragmentRoomGameBinding
import com.yizhuan.erban.home.HomeViewModel
import com.yizhuan.erban.home.adapter.RoomHotAdapter
import com.yizhuan.erban.ui.utils.RVDelegate
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
companion object {
fun newInstance(): RoomGameFragment {
val args = Bundle()
val fragment = RoomGameFragment()
fragment.arguments = args
return fragment
}
}
private val roomHotAdapter = RoomHotAdapter()
private var page = 1
private lateinit var rvDelegate: RVDelegate<HomeRoom>
private val pageSize = 20
private val homeViewModel: HomeViewModel by activityViewModels()
override fun init() {
rvDelegate = RVDelegate.Builder<HomeRoom>()
.setAdapter(roomHotAdapter)
.setRecyclerView(binding.recyclerView)
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间"))
.setLayoutManager(LinearLayoutManager(mContext))
.setPageSize(pageSize)
.build()
roomHotAdapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView)
homeViewModel.hotRoomLiveData.observe(this) {
rvDelegate.loadData(it)
}
loadData(true)
}
private fun loadData(isRefresh: Boolean) {
if (isRefresh) {
page = 1
} else {
page++
}
homeViewModel.getHotRoom(page, pageSize)
}
}

View File

@@ -5,14 +5,14 @@ import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.yizhuan.erban.base.BaseViewBindingFragment
import com.yizhuan.erban.common.EmptyViewHelper
import com.yizhuan.erban.databinding.FragmentHotRoomBinding
import com.yizhuan.erban.databinding.FragmentRoomHotBinding
import com.yizhuan.erban.home.HomeViewModel
import com.yizhuan.erban.home.adapter.HotRoomAdapter
import com.yizhuan.erban.home.adapter.RoomHotAdapter
import com.yizhuan.erban.ui.utils.RVDelegate
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
class RoomHotFragment : BaseViewBindingFragment<FragmentHotRoomBinding>() {
class RoomHotFragment : BaseViewBindingFragment<FragmentRoomHotBinding>() {
companion object {
fun newInstance(): RoomHotFragment {
@@ -23,7 +23,7 @@ class RoomHotFragment : BaseViewBindingFragment<FragmentHotRoomBinding>() {
}
}
private val roomHotAdapter = HotRoomAdapter()
private val roomHotAdapter = RoomHotAdapter()
private var page = 1
private lateinit var rvDelegate: RVDelegate<HomeRoom>
private val pageSize = 20
@@ -33,13 +33,11 @@ class RoomHotFragment : BaseViewBindingFragment<FragmentHotRoomBinding>() {
rvDelegate = RVDelegate.Builder<HomeRoom>()
.setAdapter(roomHotAdapter)
.setRecyclerView(binding.recyclerView)
.setRefreshLayout(binding.refreshLayout)
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间"))
.setLayoutManager(LinearLayoutManager(mContext))
.setPageSize(pageSize)
.build()
roomHotAdapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView)
binding.refreshLayout.setOnRefreshListener { loadData(true) }
homeViewModel.hotRoomLiveData.observe(this) {
rvDelegate.loadData(it)
@@ -48,7 +46,6 @@ class RoomHotFragment : BaseViewBindingFragment<FragmentHotRoomBinding>() {
}
private fun loadData(isRefresh: Boolean) {
binding.refreshLayout.isRefreshing = isRefresh
if (isRefresh) {
page = 1
} else {

View File

@@ -0,0 +1,93 @@
package com.yizhuan.erban.home.fragment
import android.os.Bundle
import androidx.fragment.app.activityViewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.appbar.AppBarLayout
import com.yizhuan.erban.base.BaseViewBindingFragment
import com.yizhuan.erban.common.EmptyViewHelper
import com.yizhuan.erban.databinding.FragmentRoomLikeBinding
import com.yizhuan.erban.home.HomeViewModel
import com.yizhuan.erban.home.adapter.HomeConcernsAdapter
import com.yizhuan.erban.home.adapter.RoomCommonAdapter
import com.yizhuan.erban.home.adapter.RoomLikeAdapter
import com.yizhuan.erban.ui.utils.RVDelegate
import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo
import com.yizhuan.xchat_android_core.home.bean.HomeRoom
class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
companion object {
fun newInstance(): RoomLikeFragment {
val args = Bundle()
val fragment = RoomLikeFragment()
fragment.arguments = args
return fragment
}
}
private val concernsAdapter = HomeConcernsAdapter()
private lateinit var likeRvDelegate: RVDelegate<HomeConcernsInfo>
private val mAdapter = RoomLikeAdapter()
private lateinit var rvDelegate: RVDelegate<HomeRoom>
private var pageNum = 1
private val pageSize = 20
private val homeViewModel: HomeViewModel by activityViewModels()
override fun init() {
binding.appBarLayout.addOnOffsetChangedListener(
AppBarLayout.OnOffsetChangedListener { _, verticalOffset ->
binding.refreshLayout.isEnabled = verticalOffset == 0
})
likeRvDelegate = RVDelegate.Builder<HomeConcernsInfo>()
.setAdapter(concernsAdapter)
.setRecyclerView(binding.rvLike)
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间"))
.setLayoutManager(LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false))
.build()
homeViewModel.concernsLiveData.observe(this) {
likeRvDelegate.setNewData(it)
}
homeViewModel.getConcernsRoom()
rvDelegate = RVDelegate.Builder<HomeRoom>()
.setAdapter(mAdapter)
.setLayoutManager(LinearLayoutManager(mContext))
.setPageSize(pageSize)
.setRefreshLayout(binding.refreshLayout)
.setEmptyView(EmptyViewHelper.createEmptyView(mContext, "暂无房间"))
.setRecyclerView(binding.rvCollect)
.build()
homeViewModel.collectLiveData.observe(this) {
rvDelegate.loadData(it)
}
mAdapter.setOnLoadMoreListener({
loadData(false)
}, binding.rvCollect)
binding.refreshLayout.setOnRefreshListener {
loadData(true)
}
loadData(true)
}
private fun loadData(isRefresh: Boolean) {
if (isRefresh) {
pageNum = 1
} else {
pageNum++
}
homeViewModel.getCollectRoom(pageNum, pageSize)
}
}

View File

@@ -51,7 +51,7 @@ public class RVDelegate<T> {
if (result.isSuccess()) {
loadData(result.getData(), result.isRefresh());
} else {
loadErr(result.isSuccess());
loadErr(result.isRefresh());
}
}

View File

@@ -9,6 +9,7 @@ import android.widget.FrameLayout;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.yizhuan.erban.R;
import com.yizhuan.erban.ui.widget.magicindicator.NavigatorHelper;
import com.yizhuan.erban.ui.widget.magicindicator.ScrollState;
@@ -52,6 +53,7 @@ public class CommonNavigator extends FrameLayout implements IPagerNavigator, Nav
private boolean mIndicatorOnTop; // 指示器是否在title上层默认为下层
private boolean mSkimOver; // 跨多页切换时,中间页是否显示 "掠过" 效果
private boolean mReselectWhenLayout = true; // PositionData准备好时是否重新选中当前页为true可保证在极端情况下指示器状态正确
private int titleMargin;
/****************************************************/
// 保存每个title的位置信息为扩展indicator提供保障
@@ -166,6 +168,7 @@ public class CommonNavigator extends FrameLayout implements IPagerNavigator, Nav
lp.weight = mAdapter.getTitleWeight(getContext(), i);
} else if (mTitleWrapContent) {
lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(titleMargin, 0, titleMargin, 0);
} else {
lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
}
@@ -451,6 +454,14 @@ public class CommonNavigator extends FrameLayout implements IPagerNavigator, Nav
mReselectWhenLayout = reselectWhenLayout;
}
public int getTitleMargin() {
return titleMargin;
}
public void setTitleMargin(int titleMargin) {
this.titleMargin = titleMargin;
}
private NavigatorSelectedListener mNavigatorSelectedListener;
public void setmNavigatorSelectedListener(NavigatorSelectedListener navigatorSelectedListener) {

View File

@@ -43,8 +43,7 @@ public class WrapPagerIndicator extends View implements IPagerIndicator {
private void init(Context context) {
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setStyle(Paint.Style.FILL);
mVerticalPadding = UIUtil.dip2px(context, 6);
mHorizontalPadding = UIUtil.dip2px(context, 10);
mHorizontalPadding = UIUtil.dip2px(context, 8);
}
@Override

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="180"
android:endColor="#ffff8d4b"
android:startColor="#ffffcca4"
android:type="linear"
android:useLevel="true" />
<corners android:radius="10dp" />
</shape>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="180"
android:endColor="#ffff8d4b"
android:startColor="#ffffcca4"
android:type="linear"
android:useLevel="true" />
<corners android:radius="10dp" />
</shape>

View File

@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:endColor="@color/transparent"
android:startColor="@color/color_66000000" />
<corners
android:bottomLeftRadius="@dimen/dp_12"
android:bottomRightRadius="@dimen/dp_12" />
<solid android:color="@color/color_33000000" />
<corners android:radius="100dp" />
</shape>

View File

@@ -10,15 +10,9 @@
android:id="@+id/main_fragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/bg_main_tab"
app:layout_constraintBottom_toTopOf="@id/main_tab_layout"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/bg_main_tab"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/bg_secondary_2a2a39"
app:layout_constraintBottom_toBottomOf="parent" />
<com.yizhuan.erban.ui.widget.MainTabLayout
android:id="@+id/main_tab_layout"
@@ -31,7 +25,7 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/bg_main_tab"
app:layout_constraintBottom_toTopOf="@+id/main_tab_layout"
app:layout_constraintTop_toTopOf="parent">
<com.yizhuan.erban.common.widget.DragLayout

View File

@@ -39,7 +39,7 @@
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="12dp" />
<TextView

View File

@@ -7,57 +7,23 @@
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<LinearLayout
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
app:elevation="0dp"
app:layout_behavior="com.yizhuan.erban.ui.widget.AppBarLayoutBehavior">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="@color/transparent"
app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
<View
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
<FrameLayout
android:id="@+id/fl_indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="13dp"
android:paddingRight="10dp" />
</FrameLayout>
</com.google.android.material.appbar.AppBarLayout>
android:layout_height="match_parent"
android:orientation="vertical">
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="7dp" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
android:layout_height="match_parent" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>
</layout>

View File

@@ -60,7 +60,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:visibility="gone"
app:layout_constraintDimensionRatio="345:80"
app:layout_constraintDimensionRatio="345:130"
app:layout_constraintTop_toTopOf="parent"
app:rollviewpager_hint_gravity="left"
app:rollviewpager_hint_paddingBottom="8dp"
@@ -68,6 +68,49 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_resource_0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="176"
android:adjustViewBounds="true"
android:src="@drawable/ic_resource_0" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="4" />
<ImageView
android:id="@+id/iv_resource_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="82"
android:adjustViewBounds="true"
android:src="@drawable/ic_resource_1" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="4" />
<ImageView
android:id="@+id/iv_resource_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="82"
android:adjustViewBounds="true"
android:src="@drawable/ic_resource_2" />
</LinearLayout>
<TextView
android:id="@+id/tv_recommend_room"
android:layout_width="match_parent"
@@ -104,7 +147,7 @@
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="20dp"
android:paddingLeft="13dp"
android:paddingRight="10dp" />

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingStart="8dp"
android:paddingEnd="8dp" />

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingStart="8dp"
android:paddingEnd="8dp" />

View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
app:elevation="0dp"
app:layout_behavior="com.yizhuan.erban.ui.widget.AppBarLayoutBehavior">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="@color/transparent"
app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="8dp"
android:text="关注的人"
android:textColor="@color/color_333333"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="更多"
android:textColor="#b3333333"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_like"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_like" />
<TextView
android:id="@+id/tv_collect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="16dp"
android:text="收藏的房间"
android:textColor="#ff333333"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_like" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_collect"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View File

@@ -4,79 +4,128 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="7dp"
android:layout_marginEnd="5dp"
android:layout_marginBottom="7dp">
<com.yizhuan.erban.common.widget.RectRoundImageView
android:id="@+id/iv_blur_bg"
android:layout_width="0dp"
android:layout_height="0dp"
app:borderRadius="@dimen/dp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="167:180"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:type="round" />
android:layout_marginStart="7dp"
android:layout_marginEnd="7dp">
<View
android:id="@+id/view_bg"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/shape_black_t50_12"
app:layout_constraintBottom_toBottomOf="@id/iv_blur_bg"
app:layout_constraintEnd_toEndOf="@id/iv_blur_bg"
app:layout_constraintStart_toStartOf="@id/iv_blur_bg"
app:layout_constraintTop_toTopOf="@id/iv_blur_bg" />
<View
android:layout_width="102dp"
android:layout_height="102dp"
android:background="@drawable/shape_circle_white33"
app:layout_constraintBottom_toBottomOf="@id/iv_avatar"
app:layout_constraintEnd_toEndOf="@id/iv_avatar"
app:layout_constraintStart_toStartOf="@id/iv_avatar"
app:layout_constraintTop_toTopOf="@id/iv_avatar" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar"
android:layout_width="97dp"
android:layout_height="97dp"
android:src="@drawable/default_cover"
app:cborder_color="@color/white_transparent_30"
app:cborder_width="3.5dp"
android:layout_marginTop="6dp"
android:background="@drawable/bg_home_play_item_man"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="722:172"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
<ImageView
android:id="@+id/iv_tag"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:adjustViewBounds="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/iv_room_image"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginStart="8dp"
android:src="@drawable/default_cover"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_border_color="#FFCCD7FF"
app:riv_border_width="1.5dp"
app:riv_corner_radius="20dp" />
<TextView
android:id="@+id/tv_title"
android:layout_width="0dp"
android:id="@+id/tv_room_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_13"
android:layout_marginEnd="@dimen/dp_13"
android:layout_marginStart="10dp"
android:layout_marginTop="24dp"
android:ellipsize="end"
android:lines="1"
android:textColor="@color/white"
android:textSize="15sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_avatar"
app:layout_constraintWidth_default="wrap"
tools:text="交友厅" />
android:maxLines="1"
android:textColor="@color/text_primary"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/iv_room_tag"
app:layout_constraintStart_toEndOf="@id/iv_room_image"
app:layout_constraintTop_toTopOf="parent"
tools:text="余生点唱歌曲交友房间" />
<ImageView
android:id="@+id/iv_room_tag"
android:layout_width="wrap_content"
android:layout_height="14dp"
android:layout_marginTop="11dp"
android:adjustViewBounds="true"
app:layout_constraintStart_toStartOf="@id/tv_room_title"
app:layout_constraintTop_toBottomOf="@id/tv_room_title"
tools:src="@drawable/tag_101"
tools:text="聊天" />
<TextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="26dp"
android:drawableStart="@drawable/ic_home_play_online"
android:drawablePadding="2dp"
android:gravity="bottom"
android:includeFontPadding="false"
android:textColor="@color/color_333333"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_room_title"
tools:text="266" />
<FrameLayout
android:id="@+id/fl_avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
app:layout_constraintBottom_toBottomOf="@id/iv_room_tag"
app:layout_constraintStart_toEndOf="@id/iv_room_tag">
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_0"
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_1"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="18dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_2"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="36dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_3"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="54dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_4"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="70dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,53 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/ll_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:layout_marginEnd="2dp"
android:orientation="vertical"
tools:layout_width="108dp">
tools:layout_width="120dp">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@drawable/bg_home_recommend_item"
app:layout_constraintDimensionRatio="236:276"
app:layout_constraintTop_toTopOf="parent" />
<com.yizhuan.erban.ui.widget.SquareLayout
android:id="@+id/square_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_2"
android:layout_marginEnd="@dimen/dp_2"
android:layout_marginBottom="@dimen/dp_4">
android:layout_marginStart="3dp"
android:layout_marginEnd="4dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/iv_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/default_avatar"
app:riv_corner_radius="@dimen/dp_12" />
android:src="@drawable/default_cover"
app:riv_corner_radius_bottom_left="0dp"
app:riv_corner_radius_bottom_right="0dp"
app:riv_corner_radius_top_left="8dp"
app:riv_corner_radius_top_right="8dp" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_alignParentEnd="true"
<TextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:layout_marginStart="2dp"
android:layout_marginBottom="2dp"
android:background="@drawable/shape_item_room_online_member"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="7dp"
android:layout_marginBottom="5dp"
android:drawablePadding="3dp"
android:drawableStart="@drawable/ic_home_online_tag"
android:gravity="center"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="10sp"
tools:text="100" />
</FrameLayout>
android:drawableStart="@drawable/ic_home_online_tag"
android:gravity="center"
android:maxLines="1"
android:paddingStart="4dp"
android:paddingEnd="4dp"
android:textColor="@color/white"
android:textSize="10sp"
tools:text="100" />
<ImageView
android:id="@+id/iv_tab_label"
@@ -87,20 +91,24 @@
android:visibility="gone"
tools:visibility="visible" />
</com.yizhuan.erban.ui.widget.SquareLayout>
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_marginStart="@dimen/dp_5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginTop="2dp"
android:layout_marginEnd="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="1"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="12sp"
android:includeFontPadding="false"
android:textColor="@color/color_333333"
android:textSize="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/square_layout"
tools:text="房间名称房间名称房间名称" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -3,93 +3,165 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="98dp"
android:layout_marginStart="10dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="10dp">
<View
android:id="@+id/view_bg"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="15dp"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_height="74dp"
android:layout_marginTop="7dp"
android:background="@drawable/bg_home_common_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/iv_room_image"
android:layout_width="78dp"
android:layout_height="78dp"
android:layout_width="74dp"
android:layout_height="74dp"
android:layout_marginStart="3dp"
android:src="@drawable/default_cover"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_corner_radius="8dp" />
<TextView
android:id="@+id/tv_in_pk"
android:layout_width="44dp"
android:layout_height="16dp"
android:background="@drawable/bg_common_pk"
android:gravity="center"
android:includeFontPadding="false"
android:text="PK中"
android:textColor="#ffffffff"
android:textSize="12dp"
android:visibility="gone"
app:layout_constraintStart_toStartOf="@id/iv_room_image"
app:layout_constraintTop_toTopOf="@id/iv_room_image"
tools:visibility="visible" />
<View
android:id="@+id/view_room_cover"
android:layout_width="78dp"
android:layout_height="78dp"
android:layout_width="74dp"
android:layout_height="74dp"
android:background="@drawable/bg_home_common_avatar"
app:layout_constraintBottom_toBottomOf="@id/iv_room_image"
app:layout_constraintEnd_toEndOf="@id/iv_room_image" />
app:layout_constraintEnd_toEndOf="@id/iv_room_image"
app:layout_constraintStart_toStartOf="@id/iv_room_image"
app:layout_constraintTop_toTopOf="@id/iv_room_image" />
<TextView
android:id="@+id/tv_room_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/text_primary"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/tv_room_tag"
app:layout_constraintLeft_toRightOf="@+id/iv_room_image"
app:layout_constraintBottom_toTopOf="@id/iv_room_tag"
app:layout_constraintStart_toEndOf="@id/view_room_cover"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="余生点唱歌曲交友房间" />
<TextView
android:id="@+id/tv_room_tag"
<ImageView
android:id="@+id/iv_room_tag"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="#FFFCFD"
android:textSize="10sp"
android:layout_height="14dp"
android:layout_marginTop="11dp"
android:adjustViewBounds="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/iv_room_image"
app:layout_constraintTop_toBottomOf="@+id/tv_room_title"
app:layout_constraintStart_toStartOf="@id/tv_room_title"
app:layout_constraintTop_toBottomOf="@id/tv_room_title"
tools:src="@drawable/tag_101"
tools:text="聊天" />
<TextView
android:id="@+id/tv_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:textColor="#66333333"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@id/iv_room_tag"
app:layout_constraintStart_toEndOf="@id/iv_room_tag"
tools:text="ID:1234" />
<TextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:textColor="#5936383A"
android:layout_marginTop="14dp"
android:layout_marginEnd="10dp"
android:drawableStart="@drawable/ic_home_hot_hot"
android:drawablePadding="2dp"
android:gravity="bottom"
android:includeFontPadding="false"
android:textColor="@color/color_333333"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/tv_room_tag"
app:layout_constraintLeft_toRightOf="@+id/tv_room_tag"
app:layout_constraintTop_toTopOf="@+id/tv_room_tag"
tools:text="266人热聊中" />
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="266" />
<TextView
android:id="@+id/iv_into_room"
android:layout_width="40dp"
android:layout_height="20dp"
android:layout_marginRight="16dp"
android:background="@drawable/common_btn_bg"
android:gravity="center"
android:text="进房"
android:textColor="#80000000"
android:textSize="12dp"
<FrameLayout
android:id="@+id/fl_avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="18dp"
android:layout_marginBottom="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintEnd_toEndOf="parent">
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_0"
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_1"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="14dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_2"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="28dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_3"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="44dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_4"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="58dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="98dp"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="10dp">
<View
android:id="@+id/view_bg"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="15dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_room_image"
android:layout_width="78dp"
android:layout_height="78dp"
android:src="@drawable/default_cover"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_room_cover"
android:layout_width="78dp"
android:layout_height="78dp"
app:layout_constraintBottom_toBottomOf="@id/iv_room_image"
app:layout_constraintEnd_toEndOf="@id/iv_room_image" />
<TextView
android:id="@+id/tv_room_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/text_primary"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/tv_room_tag"
app:layout_constraintLeft_toRightOf="@+id/iv_room_image"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="余生点唱歌曲交友房间" />
<TextView
android:id="@+id/tv_room_tag"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="#FFFCFD"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/iv_room_image"
app:layout_constraintTop_toBottomOf="@+id/tv_room_title"
tools:text="聊天" />
<TextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:textColor="#5936383A"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/tv_room_tag"
app:layout_constraintLeft_toRightOf="@+id/tv_room_tag"
app:layout_constraintTop_toTopOf="@+id/tv_room_tag"
tools:text="266人热聊中" />
<TextView
android:id="@+id/iv_into_room"
android:layout_width="40dp"
android:layout_height="20dp"
android:layout_marginRight="16dp"
android:background="@drawable/common_btn_bg"
android:gravity="center"
android:text="进房"
android:textColor="#80000000"
android:textSize="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="10dp">
<View
android:id="@+id/view_bg"
android:layout_width="0dp"
android:layout_height="74dp"
android:layout_marginStart="15dp"
android:background="@drawable/bg_home_hot_item"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_room_cover"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_marginTop="2dp"
android:background="@drawable/bg_home_hot_avatar"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_room_image"
android:layout_width="56dp"
android:layout_height="56dp"
android:src="@drawable/default_cover"
app:layout_constraintBottom_toBottomOf="@id/view_room_cover"
app:layout_constraintEnd_toEndOf="@id/view_room_cover"
app:layout_constraintStart_toStartOf="@id/view_room_cover"
app:layout_constraintTop_toTopOf="@id/view_room_cover" />
<TextView
android:id="@+id/tv_in_pk"
android:layout_width="44dp"
android:layout_height="16dp"
android:background="@drawable/bg_shape_play_pk"
android:gravity="center"
android:includeFontPadding="false"
android:text="PK中"
android:textColor="#ffffffff"
android:textSize="12dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/iv_room_image"
app:layout_constraintEnd_toEndOf="@id/iv_room_image"
app:layout_constraintStart_toStartOf="@id/iv_room_image"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_room_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/text_primary"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/iv_room_tag"
app:layout_constraintStart_toEndOf="@id/view_room_cover"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="余生点唱歌曲交友房间" />
<ImageView
android:id="@+id/iv_room_tag"
android:layout_width="wrap_content"
android:layout_height="14dp"
android:layout_marginTop="11dp"
android:adjustViewBounds="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/tv_room_title"
app:layout_constraintTop_toBottomOf="@id/tv_room_title"
tools:src="@drawable/tag_101"
tools:text="聊天" />
<TextView
android:id="@+id/tv_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:textColor="#66333333"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@id/iv_room_tag"
app:layout_constraintStart_toEndOf="@id/iv_room_tag"
tools:text="ID:1234" />
<TextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginEnd="10dp"
android:drawableStart="@drawable/ic_home_hot_hot"
android:drawablePadding="2dp"
android:gravity="bottom"
android:includeFontPadding="false"
android:textColor="@color/color_333333"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="266" />
<FrameLayout
android:id="@+id/fl_avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="17dp"
android:layout_marginBottom="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_0"
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_1"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="14dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_2"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="28dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_3"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="44dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_4"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="58dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="10dp">
<View
android:id="@+id/view_bg"
android:layout_width="0dp"
android:layout_height="74dp"
android:layout_marginTop="8dp"
android:background="@drawable/bg_home_common_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/iv_room_image"
android:layout_width="74dp"
android:layout_height="74dp"
android:layout_marginStart="3dp"
android:src="@drawable/default_cover"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_corner_radius="8dp" />
<TextView
android:id="@+id/tv_in_pk"
android:layout_width="44dp"
android:layout_height="16dp"
android:background="@drawable/bg_like_pk"
android:gravity="center"
android:includeFontPadding="false"
android:text="PK中"
android:textColor="#ffffffff"
android:textSize="12dp"
android:visibility="gone"
app:layout_constraintStart_toStartOf="@id/iv_room_image"
app:layout_constraintTop_toTopOf="@id/iv_room_image"
tools:visibility="visible" />
<View
android:id="@+id/view_room_cover"
android:layout_width="74dp"
android:layout_height="74dp"
android:background="@drawable/bg_home_common_avatar"
app:layout_constraintBottom_toBottomOf="@id/iv_room_image"
app:layout_constraintEnd_toEndOf="@id/iv_room_image"
app:layout_constraintStart_toStartOf="@id/iv_room_image"
app:layout_constraintTop_toTopOf="@id/iv_room_image" />
<TextView
android:id="@+id/tv_room_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/text_primary"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/iv_room_tag"
app:layout_constraintStart_toEndOf="@id/view_room_cover"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="余生点唱歌曲交友房间" />
<ImageView
android:id="@+id/iv_room_tag"
android:layout_width="wrap_content"
android:layout_height="14dp"
android:layout_marginTop="11dp"
android:adjustViewBounds="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/tv_room_title"
app:layout_constraintTop_toBottomOf="@id/tv_room_title"
tools:src="@drawable/tag_101"
tools:text="聊天" />
<TextView
android:id="@+id/tv_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:textColor="#66333333"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@id/iv_room_tag"
app:layout_constraintStart_toEndOf="@id/iv_room_tag"
tools:text="ID:1234" />
<TextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:layout_marginEnd="10dp"
android:drawableStart="@drawable/ic_home_hot_hot"
android:drawablePadding="2dp"
android:gravity="bottom"
android:includeFontPadding="false"
android:textColor="@color/color_333333"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="266" />
<FrameLayout
android:id="@+id/fl_avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="18dp"
android:layout_marginBottom="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_0"
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_1"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="14dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_2"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="28dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_3"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="44dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_4"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="58dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -18,7 +18,7 @@
app:tab_icon_select="@mipmap/ic_main_tab_game_pressed"
app:tab_text="派对"
app:tab_text_color="@color/main_tab_normal"
app:tab_text_color_select="@color/app_248cfe" />
app:tab_text_color_select="@color/color_333333" />
<com.yizhuan.erban.ui.widget.MainRedPointTab
android:id="@+id/main_attention_tab"
@@ -31,7 +31,7 @@
app:tab_icon_select="@mipmap/ic_main_tab_find_pressed"
app:tab_text="广场"
app:tab_text_color="@color/main_tab_normal"
app:tab_text_color_select="@color/app_248cfe" />
app:tab_text_color_select="@color/color_333333" />
<com.yizhuan.erban.ui.widget.MainTab
android:id="@+id/main_game_tab"
@@ -44,7 +44,7 @@
app:tab_icon_select="@mipmap/ic_main_tab_peace_pressed"
app:tab_text="赛事"
app:tab_text_color="@color/main_tab_normal"
app:tab_text_color_select="@color/app_248cfe" />
app:tab_text_color_select="@color/color_333333" />
<com.yizhuan.erban.ui.widget.MainRedPointTab
android:id="@+id/main_msg_tab"
@@ -57,7 +57,7 @@
app:tab_icon_select="@mipmap/ic_main_tab_msg_pressed"
app:tab_text="消息"
app:tab_text_color="@color/main_tab_normal"
app:tab_text_color_select="@color/app_248cfe" />
app:tab_text_color_select="@color/color_333333" />
<com.yizhuan.erban.ui.widget.MainTab
android:id="@+id/main_me_tab"
@@ -70,6 +70,6 @@
app:tab_icon_select="@mipmap/ic_main_tab_me_pressed"
app:tab_text="我的"
app:tab_text_color="@color/main_tab_normal"
app:tab_text_color_select="@color/app_248cfe" />
app:tab_text_color_select="@color/color_333333" />
</merge>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -356,7 +356,7 @@
<color name="color_FFB15E">#FFB15E</color>
<color name="color_FFC4AB">#FFC4AB</color>
<color name="color_33000000">#33000000</color>
<color name="color_66000000">#66000000</color>
<color name="color_4D000000">#4D000000</color>
<color name="color_40FFFFFF">#40FFFFFF</color>
@@ -579,7 +579,7 @@
<!-- 常用渐变按钮结束颜色 -->
<color name="color_7727e4">#7727E4</color>
<!-- 首页tab未选中颜色 -->
<color name="main_tab_normal">#555574</color>
<color name="main_tab_normal">#66333333</color>
<!-- 音游UI规范 end-->

View File

@@ -157,7 +157,7 @@
<string name="my_fan">我的粉丝</string>
<string name="no_attention_text">你还没有关注任何音游好友哦! \n快去添加关注吧!</string>
<string name="search_hint">搜索昵称/音游号/房间名</string>
<string name="search_hint">搜索昵称或ID</string>
<string name="online">在线中…</string>
<string name="me_customer_server">客服</string>

View File

@@ -9,6 +9,7 @@ import com.yizhuan.xchat_android_core.noble.NobleInfo;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -54,6 +55,10 @@ public class HomeRoom extends RoomInfo implements Parcelable, Serializable, Mult
/** 背景图标 */
private String icon;
private List<HomePlayInfo.MicUsersBean> micUsers;
private boolean crossPking;
public HomeRoom() {
super();
}

View File

@@ -138,6 +138,27 @@ object HomeModel : BaseModel() {
api.getHotRoom(pageNum, pageSize)
}
suspend fun getCommonRoom(tabId: Int, pageNum: Int, pageSize: Int): List<HomeRoom>? =
launchRequest {
api.getCommonRoom(tabId, pageNum, pageSize)
}
suspend fun getHomeTag(): List<HomeTagInfo>? =
launchRequest {
api.getHomeTag()
}
suspend fun getConcernsRoom(): List<HomeConcernsInfo>? =
launchRequest {
api.getConcernsRoom()
}
suspend fun getCollectRoom(pageNum: Int, pageSize: Int): List<HomeRoom>? =
launchRequest {
api.getCollectRoom(AuthModel.get().currentUid,pageNum, pageSize)
}
val homeConcerns: Single<List<HomeConcernsInfo>>
get() = api.apiHomeConcerns(
@@ -303,6 +324,46 @@ object HomeModel : BaseModel() {
@Query("pageSize") pageSize: Int
): ServiceResult<List<HomeRoom>>
/**
* 首页热门房间
*
* @return
*/
@GET("/home/tab/mapV2")
suspend fun getCommonRoom(
@Query("tabId") tabId: Int,
@Query("pageNum") pageNum: Int,
@Query("pageSize") pageSize: Int
): ServiceResult<List<HomeRoom>>
/**
* 首页派对 Tag List
*
* @return
*/
@GET("/home/tagV2")
suspend fun getHomeTag(): ServiceResult<List<HomeTagInfo>>
/**
* 首页派对 Tag List
*
* @return
*/
@GET("/fans/partTabFollowList")
suspend fun getConcernsRoom(): ServiceResult<List<HomeConcernsInfo>>
/**
* 首页派对 Tag List
*
* @return
*/
@GET("/fans/fansRoomList")
suspend fun getCollectRoom(
@Query("uid") uid: Long,
@Query("page") pageNum: Int,
@Query("pageSize") pageSize: Int
): ServiceResult<List<HomeRoom>>
/**
* 首页顶部收藏房间列表

View File

@@ -145,7 +145,7 @@ public final class HttpLoggingInterceptor implements Interceptor {
return level;
}
@Override public synchronized Response intercept(Chain chain) throws IOException {
@Override public Response intercept(Chain chain) throws IOException {
Level level = this.level;
Request request = chain.request();