首页UI修改:推荐和派对tab
@@ -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();
|
||||
}
|
||||
}
|
@@ -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)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
}
|
@@ -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());
|
||||
|
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -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)
|
||||
}
|
||||
|
||||
}
|
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -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
|
||||
}
|
||||
|
||||
|
@@ -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();
|
||||
|
@@ -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?) {
|
||||
|
@@ -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, "首页_聊天交友切换到动态")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -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)
|
||||
}
|
||||
}
|
@@ -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)
|
||||
}
|
||||
}
|
@@ -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 {
|
||||
|
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -51,7 +51,7 @@ public class RVDelegate<T> {
|
||||
if (result.isSuccess()) {
|
||||
loadData(result.getData(), result.isRefresh());
|
||||
} else {
|
||||
loadErr(result.isSuccess());
|
||||
loadErr(result.isRefresh());
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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) {
|
||||
|
@@ -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
|
||||
|
BIN
app/src/main/res/drawable-xhdpi/bg_common_pk.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_home_common_avatar.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_home_common_item.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_home_common_pk.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_home_hot_avatar.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_home_hot_item.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_home_play_item_man.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_home_play_item_woman.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_home_recommend_item.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_like_pk.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_home_hot_hot.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 480 B After Width: | Height: | Size: 689 B |
BIN
app/src/main/res/drawable-xhdpi/ic_home_play_online.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_resource_0.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_resource_1.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_resource_2.png
Normal file
After Width: | Height: | Size: 19 KiB |
11
app/src/main/res/drawable/bg_shape_common_pk.xml
Normal 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>
|
11
app/src/main/res/drawable/bg_shape_play_pk.xml
Normal 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>
|
@@ -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>
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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>
|
@@ -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" />
|
||||
|
||||
|
9
app/src/main/res/layout/fragment_room_game.xml
Normal 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" />
|
||||
|
9
app/src/main/res/layout/fragment_room_hot.xml
Normal 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" />
|
||||
|
91
app/src/main/res/layout/fragment_room_like.xml
Normal 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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
95
app/src/main/res/layout/item_room_game.xml
Normal 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>
|
168
app/src/main/res/layout/item_room_hot.xml
Normal 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>
|
168
app/src/main/res/layout/item_room_like.xml
Normal 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>
|
@@ -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>
|
BIN
app/src/main/res/mipmap-xhdpi/ic_home_rank.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 2.7 KiB |
@@ -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-->
|
||||
|
||||
|
@@ -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>
|
||||
|
||||
|
@@ -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();
|
||||
}
|
||||
|
@@ -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>>
|
||||
|
||||
/**
|
||||
* 首页顶部收藏房间列表
|
||||
|
@@ -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();
|
||||
|