feat:完善首页数据对接(首页排行榜、我的房间、房间标签列表)
feat:删除部分无用代码
This commit is contained in:
BIN
app/src/main/assets/svga/home_pk.svga
Normal file
BIN
app/src/main/assets/svga/home_pk.svga
Normal file
Binary file not shown.
@@ -2,21 +2,44 @@ package com.chwl.app.home
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.chwl.app.base.BaseViewModel
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.room.bean.RoomInfo
|
||||
import com.chwl.core.room.model.AvRoomModel
|
||||
import com.chwl.core.bean.response.ListResult
|
||||
import com.chwl.core.home.bean.HomeRoomCardInfo
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.home.model.HomeModel
|
||||
|
||||
class HomeMeViewModel : BaseViewModel() {
|
||||
|
||||
val roomInfoLiveData = MutableLiveData<RoomInfo>()
|
||||
val roomInfoLiveData = MutableLiveData<HomeRoomCardInfo>()
|
||||
val historyRoomListLiveData = MutableLiveData<ListResult<HomeRoomInfo>?>()
|
||||
val collectRoomListLiveData = MutableLiveData<ListResult<HomeRoomInfo>?>()
|
||||
|
||||
fun getMyRoomInfo() {
|
||||
addDisposable(
|
||||
AvRoomModel.get().requestRoomInfo(AuthModel.get().currentUid.toString())
|
||||
.subscribe({
|
||||
roomInfoLiveData.postValue(it)
|
||||
}, {
|
||||
})
|
||||
safeLaunch {
|
||||
roomInfoLiveData.postValue(HomeModel.getMyRoomInfo())
|
||||
}
|
||||
}
|
||||
|
||||
fun getHomeHistoryList(pageNum: Int) {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
historyRoomListLiveData.value = ListResult.failed(pageNum)
|
||||
},
|
||||
block = {
|
||||
val result = HomeModel.getHomeHistoryRoomList(pageNum, 20)
|
||||
historyRoomListLiveData.value = ListResult.success(result, pageNum)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getHomeCollectList(pageNum: Int) {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
collectRoomListLiveData.value = ListResult.failed(pageNum)
|
||||
},
|
||||
block = {
|
||||
val result = HomeModel.getHomeMyCollectRoomList(pageNum, 20)
|
||||
collectRoomListLiveData.value = ListResult.success(result, pageNum)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
@@ -1,73 +1,40 @@
|
||||
package com.chwl.app.home
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.chwl.app.base.BaseViewModel
|
||||
import com.chwl.core.bean.response.ListResult
|
||||
import com.chwl.core.home.bean.*
|
||||
import com.chwl.core.home.model.HomeModel
|
||||
import com.chwl.core.room.bean.AnchorInfo
|
||||
import com.chwl.core.user.bean.UserInfo
|
||||
import com.chwl.core.utils.extension.toast
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
|
||||
class HomeViewModel : BaseViewModel() {
|
||||
|
||||
private val _tabHomeLiveData = MutableLiveData<ListResult<HomeRoomInfo>?>()
|
||||
val tabHomeLiveData: MutableLiveData<ListResult<HomeRoomInfo>?> = _tabHomeLiveData
|
||||
private val _bannerLiveData = MutableLiveData<List<BannerInfo>?>()
|
||||
val bannerLiveData: MutableLiveData<List<BannerInfo>?> = _bannerLiveData
|
||||
val tabRoomListLiveData = MutableLiveData<ListResult<HomeRoomInfo>?>()
|
||||
val bannerLiveData = MutableLiveData<List<BannerInfo>?>()
|
||||
|
||||
private val _currentResourceLiveData = MutableLiveData<List<CurrentResourceInfo>?>()
|
||||
val currentResourceLiveData: MutableLiveData<List<CurrentResourceInfo>?> = _currentResourceLiveData
|
||||
val homeResourceLiveData = MutableLiveData<List<CurrentResourceInfo>?>()
|
||||
|
||||
private val _resourceJumpLiveData = MutableLiveData<HomeRoomInfo?>()
|
||||
val resourceJumpLiveData: LiveData<HomeRoomInfo?> = _resourceJumpLiveData
|
||||
val resourceJumpFlow = MutableSharedFlow<HomeRoomInfo?>()
|
||||
|
||||
// private val _homeChatPickLiveData = MutableLiveData<String?>()
|
||||
// val homeChatPickLiveData: LiveData<String?> = _homeChatPickLiveData
|
||||
val pickRoomLiveData = MutableLiveData<HomeRoomInfo?>()
|
||||
|
||||
private val _gameRoomLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
|
||||
val gameRoomLiveData: LiveData<ListResult<HomeRoomInfo>> = _gameRoomLiveData
|
||||
val openGameRoomLiveData = MutableLiveData<Long?>()
|
||||
|
||||
private val _pickRoomLiveData = MutableLiveData<HomeRoomInfo?>()
|
||||
val pickRoomLiveData: MutableLiveData<HomeRoomInfo?> = _pickRoomLiveData
|
||||
val anchorInfoLiveData = MutableLiveData<AnchorInfo?>()
|
||||
|
||||
private val _openGameRoomLiveData = MutableLiveData<Long?>()
|
||||
val openGameRoomLiveData: MutableLiveData<Long?> = _openGameRoomLiveData
|
||||
val homeTabLiveData: MutableLiveData<List<HomeTagInfo>> = MutableLiveData<List<HomeTagInfo>>()
|
||||
|
||||
private val _concernsLiveData = MutableLiveData<List<HomeRoomInfo>>()
|
||||
val concernsLiveData: LiveData<List<HomeRoomInfo>> = _concernsLiveData
|
||||
|
||||
private val _collectLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
|
||||
val collectLiveData: LiveData<ListResult<HomeRoomInfo>> = _collectLiveData
|
||||
|
||||
private val _emptyLiveData = MutableLiveData<Boolean>()
|
||||
val emptyLiveData: LiveData<Boolean> = _emptyLiveData
|
||||
|
||||
private val _anchorInfoLiveData = MutableLiveData<AnchorInfo?>()
|
||||
val anchorInfoLiveData: MutableLiveData<AnchorInfo?> = _anchorInfoLiveData
|
||||
|
||||
private val _homePlayInfoLiveData = MutableLiveData<List<HomeRoomInfo>?>()
|
||||
val homePlayInfoData: MutableLiveData<List<HomeRoomInfo>?> = _homePlayInfoLiveData
|
||||
|
||||
private val _homeHotRoomLiveData = MutableLiveData<ListResult<HomeRoomInfo>>()
|
||||
val homeHotRoomLiveData: LiveData<ListResult<HomeRoomInfo>> = _homeHotRoomLiveData
|
||||
|
||||
private val _newFriendLiveData = MutableLiveData<ListResult<UserInfo>>()
|
||||
val newFriendLiveData: LiveData<ListResult<UserInfo>> = _newFriendLiveData
|
||||
|
||||
val homeTagLiveData: MutableLiveData<List<HomeTagInfo>> = MutableLiveData<List<HomeTagInfo>>()
|
||||
|
||||
fun getHomeTabName(tabId: Int, pageNum: Int) {
|
||||
val homeRankListLiveData = MutableLiveData<List<List<HomeRankBean>>>()
|
||||
fun getTabRoomList(tabId: Int, pageNum: Int) {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_tabHomeLiveData.value = ListResult.failed(pageNum)
|
||||
tabRoomListLiveData.value = ListResult.failed(pageNum)
|
||||
},
|
||||
block = {
|
||||
val result = HomeModel.getHomeTabHome(tabId, pageNum, 20)
|
||||
_tabHomeLiveData.value = ListResult.success(result, pageNum)
|
||||
tabRoomListLiveData.value = ListResult.success(result, pageNum)
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -75,13 +42,13 @@ class HomeViewModel : BaseViewModel() {
|
||||
/**
|
||||
* 首页改版资源位
|
||||
*/
|
||||
fun getCurrentResourceInfo() {
|
||||
fun getHomeResourceInfo() {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_currentResourceLiveData.value = null
|
||||
homeResourceLiveData.value = null
|
||||
},
|
||||
block = {
|
||||
_currentResourceLiveData.value = HomeModel.getCurrentResource()
|
||||
homeResourceLiveData.value = HomeModel.getCurrentResource()
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -89,160 +56,35 @@ class HomeViewModel : BaseViewModel() {
|
||||
fun getResourceJumpInfo(id: Int) {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_resourceJumpLiveData.value = null
|
||||
resourceJumpFlow.emit(null)
|
||||
it.message.toast()
|
||||
},
|
||||
block = {
|
||||
_resourceJumpLiveData.value = HomeModel.getResourceJumpInfo(id)
|
||||
resourceJumpFlow.emit(HomeModel.getResourceJumpInfo(id))
|
||||
}
|
||||
)
|
||||
}
|
||||
//
|
||||
// fun getHomeChatPick() {
|
||||
// safeLaunch(
|
||||
// onError = {
|
||||
// _homeChatPickLiveData.value = null
|
||||
// it.message.toast()
|
||||
// },
|
||||
// block = {
|
||||
// _homeChatPickLiveData.value = HomeModel.getHomeChatPick()
|
||||
// }
|
||||
// )
|
||||
// }
|
||||
|
||||
fun getBannerInfo() {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_bannerLiveData.value = null
|
||||
bannerLiveData.value = null
|
||||
},
|
||||
block = {
|
||||
_bannerLiveData.value = HomeModel.getHomeBanner("1")
|
||||
bannerLiveData.value = HomeModel.getHomeBanner("1")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getGameRoom(pageNum: Int, pageSize: Int) {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
it.message.toast()
|
||||
_gameRoomLiveData.value = ListResult.failed(pageNum)
|
||||
},
|
||||
block = {
|
||||
val result = HomeModel.getGameRoom(pageNum, pageSize)
|
||||
_gameRoomLiveData.value = ListResult.success(result, pageNum)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun fastPickGameRoom(mgId: Long? = null) {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
it.message.toast()
|
||||
},
|
||||
block = {
|
||||
val homeRoomInfo = HomeModel.fastPickGameRoom(mgId)
|
||||
if (homeRoomInfo?.isPick == true) {
|
||||
_pickRoomLiveData.value = homeRoomInfo
|
||||
} else if (homeRoomInfo?.isNeedOpenSelfRoom == true) {
|
||||
_openGameRoomLiveData.value = mgId
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
fun getCollectRoom(pageNum: Int, pageSize: Int) {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_collectLiveData.value = ListResult.failed(pageNum)
|
||||
_emptyLiveData.value = true
|
||||
},
|
||||
block = {
|
||||
if (pageNum == 1) {
|
||||
val concernsRooms = async(Dispatchers.IO) {
|
||||
try {
|
||||
HomeModel.getConcernsRoom()
|
||||
} catch (e: Throwable) {
|
||||
null
|
||||
}
|
||||
}
|
||||
val collectRooms = async(Dispatchers.IO) {
|
||||
try {
|
||||
HomeModel.getCollectRoom(pageNum, pageSize)
|
||||
} catch (e: Throwable) {
|
||||
null
|
||||
}
|
||||
}
|
||||
val data = concernsRooms.await()
|
||||
data?.let { _concernsLiveData.value = it }
|
||||
val collectList = collectRooms.await()
|
||||
if (collectList == null) {
|
||||
_collectLiveData.value = ListResult.failed(pageNum)
|
||||
} else {
|
||||
_collectLiveData.value =
|
||||
ListResult.success(collectList.fansRoomList, pageNum)
|
||||
}
|
||||
_emptyLiveData.value = _concernsLiveData.value.isNullOrEmpty() &&
|
||||
_collectLiveData.value?.data.isNullOrEmpty()
|
||||
} else {
|
||||
val result = HomeModel.getCollectRoom(pageNum, pageSize)
|
||||
_collectLiveData.value = ListResult.success(result?.fansRoomList, pageNum)
|
||||
}
|
||||
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun requestAnchorInfo() {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_anchorInfoLiveData.value = null
|
||||
},
|
||||
block = {
|
||||
_anchorInfoLiveData.value = HomeModel.requestAnchorInfo()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getHomePlayV2() {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_homePlayInfoLiveData.value = null
|
||||
},
|
||||
block = {
|
||||
_homePlayInfoLiveData.value = HomeModel.getHomePlayV2()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getHotRoom() {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_homeHotRoomLiveData.value = ListResult.failed(1)
|
||||
},
|
||||
block = {
|
||||
val result = HomeModel.getHotRoom()
|
||||
_homeHotRoomLiveData.value = ListResult.success(result, 1)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getNewFriendList(gender: Int? = null) {
|
||||
safeLaunch(
|
||||
onError = {
|
||||
_newFriendLiveData.value = ListResult.failed(1)
|
||||
},
|
||||
block = {
|
||||
val result = HomeModel.getNewFriendList(gender)
|
||||
_newFriendLiveData.value = ListResult.success(result, 1)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getHomeTagInfo() {
|
||||
fun getHomeTabInfo() {
|
||||
safeLaunch {
|
||||
homeTagLiveData.value = HomeModel.getNewHomeTag()
|
||||
homeTabLiveData.value = HomeModel.getNewHomeTab()
|
||||
}
|
||||
}
|
||||
|
||||
fun getHomeRankList() {
|
||||
safeLaunch {
|
||||
homeRankListLiveData.value = HomeModel.getHomeRankList()
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,89 +0,0 @@
|
||||
package com.chwl.app.home.adapter
|
||||
|
||||
import android.graphics.Color
|
||||
import android.graphics.LinearGradient
|
||||
import android.graphics.Shader
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.core.view.isGone
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.makeramen.roundedimageview.RoundedImageView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.home.helper.BannerHelper
|
||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.utils.CoreTextUtils
|
||||
import com.chwl.core.utils.extension.ifNullOrEmpty
|
||||
import com.chwl.library.utils.ResUtil
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/11/13
|
||||
*/
|
||||
class HomePlayAdapter : BaseMultiItemQuickAdapter<HomeRoomInfo, BaseViewHolder>(null) {
|
||||
|
||||
init {
|
||||
addItemType(HomeRoomInfo.TYPE_ROOM, R.layout.item_home_play)
|
||||
addItemType(HomeRoomInfo.TYPE_BANNER, R.layout.item_room_banner)
|
||||
addItemType(HomeRoomInfo.TYPE_BROADCAST, R.layout.item_home_play_broadcast)
|
||||
}
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||
if (item.itemType == HomeRoomInfo.TYPE_ROOM ||
|
||||
item.itemType == HomeRoomInfo.TYPE_BROADCAST
|
||||
) {
|
||||
helper.setText(R.id.tv_room_title, item.title)
|
||||
helper.setVisible(R.id.iv_room_tag, !CoreTextUtils.isEmptyText(item.tagPict))
|
||||
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict)
|
||||
helper.setText(R.id.tv_online_number, "${item.onlineNum}")
|
||||
val tvMgName = helper.getView<TextView>(R.id.tv_mg_name)
|
||||
tvMgName.text = item.mgName.ifNullOrEmpty { ResUtil.getString(R.string.home_adapter_homeplayadapter_01) }
|
||||
if (item.mgName.isNullOrEmpty()) {
|
||||
setGradient(tvMgName, "#FF8C5FFF", "#FFFF969B")
|
||||
} else {
|
||||
setGradient(tvMgName, "#FF61C4FE", "#FFA979FF")
|
||||
}
|
||||
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)
|
||||
}
|
||||
val ivRoomImage = helper.getView<RoundedImageView>(R.id.iv_room_image)
|
||||
ImageLoadUtilsV2.loadAvatar(ivRoomImage, item.avatar)
|
||||
ivRoomImage.borderColor =
|
||||
Color.parseColor(if (item.gender == 1) "#CCD7FF" else "#FFD0D0")
|
||||
|
||||
if (item.itemType == HomeRoomInfo.TYPE_BROADCAST) {
|
||||
helper.setText(R.id.tv_broad_msg, item.broadMsg)
|
||||
} else {
|
||||
helper.setBackgroundRes(
|
||||
R.id.view_bg,
|
||||
if (item.gender == 1) R.drawable.bg_home_play_item_man else R.drawable.bg_home_play_item_woman
|
||||
)
|
||||
}
|
||||
} else {
|
||||
BannerHelper.setBanner(helper.getView(R.id.roll_view), item.bannerVoList)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun setGradient(textView: TextView, startColor: String, endColor: String) {
|
||||
val endX = textView.paint.textSize * textView.text.length
|
||||
val linearGradient = LinearGradient(
|
||||
0f, 0f, endX, 0f,
|
||||
Color.parseColor(startColor),
|
||||
Color.parseColor(endColor),
|
||||
Shader.TileMode.CLAMP
|
||||
)
|
||||
textView.paint.shader = linearGradient
|
||||
textView.invalidate()
|
||||
}
|
||||
}
|
@@ -4,13 +4,17 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.BaseAdapter
|
||||
import android.widget.ImageView
|
||||
import androidx.core.view.isVisible
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.core.home.bean.HomeRankBean
|
||||
|
||||
class HomeRankViewFlipperAdapter : BaseAdapter() {
|
||||
|
||||
private val list = ArrayList<List<String>>()
|
||||
private val list = ArrayList<List<HomeRankBean>>()
|
||||
|
||||
fun setNewData(newList: List<List<String>>) {
|
||||
fun setNewData(newList: List<List<HomeRankBean>>) {
|
||||
list.clear()
|
||||
list.addAll(newList)
|
||||
notifyDataSetChanged()
|
||||
@@ -20,8 +24,8 @@ class HomeRankViewFlipperAdapter : BaseAdapter() {
|
||||
return list.size
|
||||
}
|
||||
|
||||
override fun getItem(position: Int): Any {
|
||||
return list.get(position)
|
||||
override fun getItem(position: Int): List<HomeRankBean>? {
|
||||
return list.getOrNull(position)
|
||||
}
|
||||
|
||||
override fun getItemId(position: Int): Long {
|
||||
@@ -31,7 +35,27 @@ class HomeRankViewFlipperAdapter : BaseAdapter() {
|
||||
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
|
||||
val view = convertView ?: LayoutInflater.from(parent.context)
|
||||
.inflate(R.layout.home_recommend_item_rank, parent, false)
|
||||
val rankView1 = view.findViewById<ImageView>(R.id.iv_rank_1)
|
||||
val rankView2 = view.findViewById<ImageView>(R.id.iv_rank_2)
|
||||
val rankView3 = view.findViewById<ImageView>(R.id.iv_rank_3)
|
||||
val rankBorderView1 = view.findViewById<ImageView>(R.id.iv_rank_border_1)
|
||||
val rankBorderView2 = view.findViewById<ImageView>(R.id.iv_rank_border_2)
|
||||
val rankBorderView3 = view.findViewById<ImageView>(R.id.iv_rank_border_3)
|
||||
val list = getItem(position)
|
||||
loadRankData(rankView1, rankBorderView1, list?.get(0))
|
||||
loadRankData(rankView2, rankBorderView2, list?.get(1))
|
||||
loadRankData(rankView3, rankBorderView3, list?.get(2))
|
||||
return view
|
||||
}
|
||||
|
||||
private fun loadRankData(view: ImageView, borderView: View, data: HomeRankBean?) {
|
||||
if (data == null) {
|
||||
view.isVisible = false
|
||||
borderView.isVisible = false
|
||||
} else {
|
||||
view.isVisible = true
|
||||
borderView.isVisible = true
|
||||
view.loadAvatar(data.avatar)
|
||||
}
|
||||
}
|
||||
}
|
@@ -9,13 +9,16 @@ import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.app.ui.utils.loadFromAssets
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.opensource.svgaplayer.SVGADrawable
|
||||
import com.opensource.svgaplayer.SVGAImageView
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/11/13
|
||||
*/
|
||||
class HomeHotAdapter :
|
||||
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.item_room_recommend) {
|
||||
class HomeRoomAdapter :
|
||||
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.home_item_room) {
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||
helper.apply {
|
||||
@@ -55,5 +58,16 @@ class HomeHotAdapter :
|
||||
ImageLoadUtils.loadImage(tagView, tagPict)
|
||||
tagView.isVisible = true
|
||||
}
|
||||
val pkView = helper.getView<SVGAImageView>(R.id.svga_pk)
|
||||
if (item.isCrossPking) {
|
||||
pkView.isVisible = true
|
||||
if (pkView.drawable !is SVGADrawable) {
|
||||
pkView.loadFromAssets("svga/home_pk.svga")
|
||||
}
|
||||
pkView.startAnimation()
|
||||
} else {
|
||||
pkView.isVisible = false
|
||||
pkView.stopAnimation()
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,56 +0,0 @@
|
||||
package com.chwl.app.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.opensource.svgaplayer.SVGAImageView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.app.ui.utils.loadFromAssets
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.utils.CoreTextUtils
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/11/13
|
||||
*/
|
||||
class HomeSingleAnchorAdapter :
|
||||
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.item_home_single_anchor) {
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||
helper.setText(R.id.tv_nickname, if (!CoreTextUtils.isEmptyText(item.nick)) item.nick else "")
|
||||
helper.setText(
|
||||
R.id.tv_room_name,
|
||||
if (!CoreTextUtils.isEmptyText(item.title)) item.title else ""
|
||||
)
|
||||
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_avatar), item.avatar)
|
||||
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_avatar_big), item.avatar, false, 8)
|
||||
val ivPking = helper.getView<SVGAImageView>(R.id.iv_pking)
|
||||
val ivTag = helper.getView<ImageView>(R.id.iv_tag)
|
||||
ivPking.isVisible = item.isCrossPking
|
||||
ivTag.isGone = item.isCrossPking
|
||||
if (item.isCrossPking) {
|
||||
ivPking.loadFromAssets("svga/single_room_pking.svga")
|
||||
} else {
|
||||
ivTag.load(item.tagPict)
|
||||
}
|
||||
helper.setImageResource(
|
||||
R.id.iv_gender,
|
||||
if (item.gender == 1) R.drawable.ic_gender_male else R.drawable.ic_gender_female
|
||||
)
|
||||
helper.setText(
|
||||
R.id.tv_topic,
|
||||
if (!CoreTextUtils.isEmptyText(item.roomDesc)) item.roomDesc else ""
|
||||
)
|
||||
helper.itemView.setOnClickListener {
|
||||
AVRoomActivity.startForFromType(
|
||||
mContext,
|
||||
item.uid,
|
||||
AVRoomActivity.FROM_TYPE_RECOMMEND
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,47 +0,0 @@
|
||||
package com.chwl.app.home.adapter
|
||||
|
||||
import android.widget.ImageView
|
||||
import androidx.core.view.isVisible
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.opensource.svgaplayer.SVGAImageView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.app.ui.utils.loadFromAssets
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.utils.CoreTextUtils
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/11/13
|
||||
* 人气主播更多
|
||||
*/
|
||||
class MoreSingleAnchorAdapter :
|
||||
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.item_home_single_anchor_more) {
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||
|
||||
val ivPking = helper.getView<SVGAImageView>(R.id.iv_pking)
|
||||
val ivTag = helper.getView<ImageView>(R.id.iv_tag)
|
||||
ivPking.isVisible = item.isCrossPking
|
||||
ivTag.isVisible = !CoreTextUtils.isEmptyText(item.tagPict) && !item.isCrossPking
|
||||
if (item.isCrossPking) {
|
||||
ivPking.loadFromAssets("svga/single_room_pking.svga")
|
||||
} else {
|
||||
ivTag.load(item.tagPict)
|
||||
}
|
||||
helper.setText(R.id.tv_online_num, item.onlineNum.toString())
|
||||
.setText(R.id.tv_nickname, item.nick)
|
||||
.setText(R.id.tv_room_name, item.title)
|
||||
.setImageResource(
|
||||
R.id.iv_gender,
|
||||
if (item.gender == 1) R.drawable.ic_gender_male else R.drawable.ic_gender_female
|
||||
)
|
||||
helper.getView<ImageView>(R.id.iv_room_avatar)
|
||||
.load(item.avatar, 12f, R.drawable.default_cover)
|
||||
|
||||
helper.itemView.setOnClickListener {
|
||||
AVRoomActivity.start(mContext, item.uid)
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,82 +0,0 @@
|
||||
package com.chwl.app.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.ui.widget.XRecyclerView.ScaleTransitionPagerTitleView;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.indicators.WrapPagerIndicator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PartyMagicIndicatorAdapter extends CommonNavigatorAdapter {
|
||||
private final List<? extends CharSequence> mTitleList;
|
||||
|
||||
private int textSize = 14;
|
||||
private float minScale = 1f;
|
||||
private OnItemSelectListener mOnItemSelectListener;
|
||||
|
||||
public PartyMagicIndicatorAdapter(List<? extends CharSequence> charSequences) {
|
||||
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_6D6B89));
|
||||
scaleTransitionPagerTitleView.setIncludeFontPadding(false);
|
||||
scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(context, R.color.color_white));
|
||||
scaleTransitionPagerTitleView.setMinScale(minScale);
|
||||
scaleTransitionPagerTitleView.setTextSize(textSize);
|
||||
int padding = UIUtil.dip2px(context, 10);
|
||||
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) {
|
||||
return new WrapPagerIndicator(context);
|
||||
}
|
||||
|
||||
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 void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
|
||||
mOnItemSelectListener = onItemSelectListener;
|
||||
}
|
||||
|
||||
public interface OnItemSelectListener {
|
||||
void onItemSelect(int position, TextView view);
|
||||
}
|
||||
}
|
@@ -1,58 +0,0 @@
|
||||
package com.chwl.app.home.adapter
|
||||
|
||||
import android.widget.ImageView
|
||||
import androidx.core.view.isGone
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.home.helper.BannerHelper
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.utils.CoreTextUtils
|
||||
|
||||
|
||||
class RoomHotAdapter : BaseMultiItemQuickAdapter<HomeRoomInfo, BaseViewHolder>(null) {
|
||||
|
||||
init {
|
||||
addItemType(HomeRoomInfo.TYPE_ROOM, R.layout.item_room_hot)
|
||||
addItemType(HomeRoomInfo.TYPE_BROADCAST, R.layout.item_room_hot)
|
||||
addItemType(HomeRoomInfo.TYPE_BANNER, R.layout.item_room_banner)
|
||||
}
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||
if (item.itemType != HomeRoomInfo.TYPE_BANNER) {
|
||||
|
||||
helper.itemView.setOnClickListener {
|
||||
AVRoomActivity.start(mContext, item.uid)
|
||||
}
|
||||
|
||||
helper.getView<ImageView>(R.id.iv_room_image).load(item.avatar)
|
||||
helper.setText(R.id.tv_online_number, "${item.onlineNum}")
|
||||
helper.setText(R.id.tv_room_title, item.title)
|
||||
helper.setText(R.id.tv_id, "ID:${item.erbanNo}")
|
||||
|
||||
helper.setVisible(R.id.tv_in_pk, item.isCrossPking)
|
||||
|
||||
helper.setVisible(R.id.iv_room_tag, !CoreTextUtils.isEmptyText(item.tagPict))
|
||||
helper.getView<ImageView>(R.id.iv_room_tag).load(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)
|
||||
}
|
||||
} else {
|
||||
BannerHelper.setBanner(helper.getView(R.id.roll_view), item.bannerVoList)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -1,55 +0,0 @@
|
||||
package com.chwl.app.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.chwl.app.R
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.utils.CoreTextUtils
|
||||
|
||||
|
||||
class RoomLikeAdapter : BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.item_room_like) {
|
||||
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||
helper.apply {
|
||||
getView<ImageView>(R.id.iv_room_image).load(item.roomAvatar)
|
||||
setText(R.id.tv_online_number, "${item.roomOnlineNum}")
|
||||
setText(R.id.tv_room_title, item.roomName)
|
||||
setText(R.id.tv_id, "ID:${item.erbanNo}")
|
||||
}
|
||||
helper.setVisible(R.id.tv_in_pk, item.isCrossPking)
|
||||
helper.setVisible(R.id.iv_room_tag, !CoreTextUtils.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)
|
||||
}
|
||||
helper.itemView.setOnClickListener {
|
||||
AVRoomActivity.start(mContext, item.roomUid)
|
||||
}
|
||||
if (item.isValid) {
|
||||
helper.setGone(R.id.tv_online_number, true)
|
||||
helper.setBackgroundRes(R.id.view_bg, R.drawable.bg_home_like_item)
|
||||
helper.setBackgroundRes(R.id.view_room_cover, R.drawable.bg_home_common_avatar)
|
||||
} else {
|
||||
helper.setGone(R.id.tv_online_number, false)
|
||||
helper.setBackgroundRes(R.id.view_bg, R.drawable.bg_home_like_item_disable)
|
||||
helper.setBackgroundRes(R.id.view_room_cover, R.drawable.bg_home_common_avatar_disable)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -5,6 +5,9 @@ import android.widget.LinearLayout
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import com.chwl.app.R
|
||||
@@ -32,6 +35,8 @@ import com.chwl.core.home.bean.HomeTagInfo
|
||||
import com.chwl.library.utils.ListUtils
|
||||
import com.example.lib_utils.ktx.getDrawableById
|
||||
import com.zhpan.bannerview.BannerViewPager
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
首页
|
||||
@@ -47,28 +52,28 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
initTab()
|
||||
initBanner()
|
||||
initResource()
|
||||
initFlipper()
|
||||
homeViewModel.homeTagLiveData.observe(this) {
|
||||
loadTabList(transformTabList(it))
|
||||
}
|
||||
homeViewModel.getHomeTagInfo()
|
||||
FragmentVisibleStateHelper(this).start {
|
||||
onVisibleChanged(it)
|
||||
initRank()
|
||||
FragmentVisibleStateHelper(this).apply {
|
||||
start {
|
||||
onVisibleChanged(it, isFirstVisible)
|
||||
}
|
||||
}
|
||||
homeViewModel.getHomeTabInfo()
|
||||
homeViewModel.getBannerInfo()
|
||||
homeViewModel.getHomeResourceInfo()
|
||||
homeViewModel.getHomeRankList()
|
||||
}
|
||||
|
||||
private fun initListener() {
|
||||
// binding.tvSearch.setOnClickListener(this)
|
||||
// binding.ivRanking.setOnClickListener(this)
|
||||
// binding.ivMyRoom.setOnClickListener(this)
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
it.finishRefresh()
|
||||
childFragmentManager.fragments.forEach {
|
||||
(it as? OnRefreshListener)?.onRefresh()
|
||||
}
|
||||
homeViewModel.getHomeRankList()
|
||||
homeViewModel.getBannerInfo()
|
||||
if (binding.viewPager.adapter?.itemCount == 0) {
|
||||
homeViewModel.getHomeTagInfo()
|
||||
homeViewModel.getHomeTabInfo()
|
||||
}
|
||||
}
|
||||
binding.refreshLayout.isEnableLoadmore = false
|
||||
@@ -76,7 +81,7 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
}
|
||||
|
||||
private fun initResource() {
|
||||
homeViewModel.currentResourceLiveData.observe(this) {
|
||||
homeViewModel.homeResourceLiveData.observe(this) {
|
||||
it?.let {
|
||||
val resourceViews = arrayOf(
|
||||
binding.ivResource0,
|
||||
@@ -86,8 +91,10 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
resourceViews.forEach {
|
||||
it.isVisible = false
|
||||
}
|
||||
binding.viewFlipper.isVisible = false
|
||||
return@observe
|
||||
}
|
||||
binding.viewFlipper.isVisible = true
|
||||
resourceViews.forEachIndexed { index, imageView ->
|
||||
imageView.isVisible = true
|
||||
imageView.load(it[index].icon)
|
||||
@@ -106,17 +113,21 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
}
|
||||
}
|
||||
}
|
||||
homeViewModel.resourceJumpLiveData.observe(this) {
|
||||
dialogManager.dismissDialog()
|
||||
it?.let {
|
||||
if (it.isPick) {
|
||||
AVRoomActivity.start(context, it.uid)
|
||||
} else {
|
||||
RecommendRoomDialog.newInstance(it).show(context)
|
||||
|
||||
lifecycleScope.launch {
|
||||
lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) {
|
||||
homeViewModel.resourceJumpFlow.collectLatest {
|
||||
dialogManager.dismissDialog()
|
||||
it?.let {
|
||||
if (it.isPick) {
|
||||
AVRoomActivity.start(context, it.uid)
|
||||
} else {
|
||||
RecommendRoomDialog.newInstance(it).show(context)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
homeViewModel.getCurrentResourceInfo()
|
||||
}
|
||||
|
||||
private fun initBanner() {
|
||||
@@ -140,20 +151,16 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
}
|
||||
}
|
||||
}
|
||||
homeViewModel.getBannerInfo()
|
||||
}
|
||||
|
||||
private fun initFlipper() {
|
||||
private fun initRank() {
|
||||
val rankAdapter = HomeRankViewFlipperAdapter()
|
||||
binding.viewFlipper.adapter = rankAdapter
|
||||
val list = ArrayList<List<String>>()
|
||||
repeat(3) {
|
||||
list.add(ArrayList())
|
||||
}
|
||||
rankAdapter.setNewData(list)
|
||||
binding.viewFlipper.setInAnimation(context, R.animator.home_rank_anim_in)
|
||||
binding.viewFlipper.setOutAnimation(context, R.animator.home_rank_anim_out)
|
||||
binding.viewFlipper.startFlipping()
|
||||
homeViewModel.homeRankListLiveData.observe(this) {
|
||||
rankAdapter.setNewData(it ?: emptyList())
|
||||
}
|
||||
}
|
||||
|
||||
override fun onClick(v: View) {
|
||||
@@ -172,15 +179,6 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
DemoCache.saveAnchorCardView(1)
|
||||
}
|
||||
}
|
||||
|
||||
// R.id.iv_ranking -> {
|
||||
// //首页_排行榜
|
||||
// CommonWebViewActivity.start(mContext, UriProvider.getRanking())
|
||||
// }
|
||||
//
|
||||
// R.id.iv_my_room -> {
|
||||
// OpenRoomHelper.openRoom(baseActivity)
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,7 +195,7 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
|
||||
override fun createFragment(position: Int): Fragment {
|
||||
val itemId = getItemId(position)
|
||||
return HomeTabFragment.newInstance(itemId.toInt()).apply {
|
||||
return HomeTabRoomFragment.newInstance(itemId.toInt()).apply {
|
||||
autoRefreshOnVisible = true
|
||||
}
|
||||
}
|
||||
@@ -207,6 +205,9 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
}
|
||||
}
|
||||
ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager)
|
||||
homeViewModel.homeTabLiveData.observe(this) {
|
||||
loadTabList(transformTabList(it))
|
||||
}
|
||||
}
|
||||
|
||||
private fun resetTabIndicator(list: List<String>) {
|
||||
@@ -255,8 +256,14 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
|
||||
tabList.clear()
|
||||
}
|
||||
|
||||
private fun onVisibleChanged(isVisible: Boolean) {
|
||||
private fun onVisibleChanged(isVisible: Boolean, isFirstVisible: Boolean) {
|
||||
if (isVisible) {
|
||||
if (!isFirstVisible) {
|
||||
if (homeViewModel.homeResourceLiveData.value == null) {
|
||||
homeViewModel.getHomeResourceInfo()
|
||||
}
|
||||
homeViewModel.getHomeRankList()
|
||||
}
|
||||
binding.viewFlipper.startFlipping()
|
||||
} else {
|
||||
binding.viewFlipper.stopFlipping()
|
||||
|
@@ -1,52 +1,55 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeHotAdapter
|
||||
import com.chwl.app.home.adapter.HomeRoomAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.HomeTabFragmentBinding
|
||||
import com.chwl.app.databinding.HomeTabRoomFragmentBinding
|
||||
import com.chwl.app.home.HomeMeViewModel
|
||||
import com.chwl.app.support.FragmentVisibleStateHelper
|
||||
|
||||
/**
|
||||
* 收藏
|
||||
*/
|
||||
class HomeRoomCollectListFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
class HomeRoomCollectListFragment : BaseViewBindingFragment<HomeTabRoomFragmentBinding>() {
|
||||
|
||||
private lateinit var roomHotAdapter: HomeHotAdapter
|
||||
private lateinit var adapter: HomeRoomAdapter
|
||||
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val homeViewModel: HomeViewModel by viewModels()
|
||||
private val viewModel: HomeMeViewModel by viewModels()
|
||||
|
||||
private var pageNum = 1
|
||||
private var tabId: Int? = null
|
||||
|
||||
companion object {
|
||||
fun newInstance(tabId: Int): HomeRoomCollectListFragment {
|
||||
return HomeRoomCollectListFragment().apply {
|
||||
arguments = Bundle().apply {
|
||||
putInt("tabId", tabId)
|
||||
fun newInstance(): HomeRoomCollectListFragment {
|
||||
return HomeRoomCollectListFragment()
|
||||
}
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
initListView()
|
||||
FragmentVisibleStateHelper(this).apply {
|
||||
start {
|
||||
if (it && !isFirstVisible) {
|
||||
loadData(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
override fun init() {
|
||||
tabId = arguments?.getInt("tabId")
|
||||
initHotRoomTab()
|
||||
}
|
||||
|
||||
private fun initHotRoomTab() {
|
||||
roomHotAdapter = HomeHotAdapter()
|
||||
roomHotAdapter.onItemClickListener =
|
||||
private fun initListView() {
|
||||
adapter = HomeRoomAdapter()
|
||||
adapter.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
|
||||
val homePlayInfo: HomeRoomInfo? = roomHotAdapter.getItem(position)
|
||||
val homePlayInfo: HomeRoomInfo? = adapter.getItem(position)
|
||||
if (homePlayInfo != null) {
|
||||
//首页_房间派对
|
||||
AVRoomActivity.start(mContext, homePlayInfo.uid)
|
||||
@@ -54,17 +57,22 @@ class HomeRoomCollectListFragment : BaseViewBindingFragment<HomeTabFragmentBindi
|
||||
}
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setPageSize(20)
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setAdapter(adapter)
|
||||
.setRecyclerView(binding.mRecyclerRoom)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextViewHeight(context, getString(R.string.data_empty)))
|
||||
.setEmptyView(
|
||||
EmptyViewHelper.createEmptyTextViewHeight(
|
||||
context,
|
||||
getString(R.string.data_empty)
|
||||
)
|
||||
)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.build()
|
||||
|
||||
roomHotAdapter.setOnLoadMoreListener({
|
||||
adapter.setOnLoadMoreListener({
|
||||
loadData(false)
|
||||
}, binding.mRecyclerRoom)
|
||||
|
||||
homeViewModel.tabHomeLiveData.observe(this) {
|
||||
viewModel.collectRoomListLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
@@ -80,6 +88,6 @@ class HomeRoomCollectListFragment : BaseViewBindingFragment<HomeTabFragmentBindi
|
||||
} else {
|
||||
pageNum++
|
||||
}
|
||||
homeViewModel.getHomeTabName(tabId ?: 0, pageNum)
|
||||
viewModel.getHomeCollectList(pageNum)
|
||||
}
|
||||
}
|
@@ -1,52 +1,55 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeHotAdapter
|
||||
import com.chwl.app.home.adapter.HomeRoomAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.HomeTabFragmentBinding
|
||||
import com.chwl.app.databinding.HomeTabRoomFragmentBinding
|
||||
import com.chwl.app.home.HomeMeViewModel
|
||||
import com.chwl.app.support.FragmentVisibleStateHelper
|
||||
|
||||
/**
|
||||
* 最近访问记录
|
||||
*/
|
||||
class HomeRoomHistoryListFragment : BaseViewBindingFragment<HomeTabFragmentBinding>() {
|
||||
class HomeRoomHistoryListFragment : BaseViewBindingFragment<HomeTabRoomFragmentBinding>() {
|
||||
|
||||
private lateinit var roomHotAdapter: HomeHotAdapter
|
||||
private lateinit var adapter: HomeRoomAdapter
|
||||
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val homeViewModel: HomeViewModel by viewModels()
|
||||
private val viewModel: HomeMeViewModel by viewModels()
|
||||
|
||||
private var pageNum = 1
|
||||
private var tabId: Int? = null
|
||||
|
||||
companion object {
|
||||
fun newInstance(tabId: Int): HomeRoomHistoryListFragment {
|
||||
return HomeRoomHistoryListFragment().apply {
|
||||
arguments = Bundle().apply {
|
||||
putInt("tabId", tabId)
|
||||
fun newInstance(): HomeRoomHistoryListFragment {
|
||||
return HomeRoomHistoryListFragment()
|
||||
}
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
initListView()
|
||||
FragmentVisibleStateHelper(this).apply {
|
||||
start {
|
||||
if (it && !isFirstVisible) {
|
||||
loadData(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
override fun init() {
|
||||
tabId = arguments?.getInt("tabId")
|
||||
initHotRoomTab()
|
||||
}
|
||||
|
||||
private fun initHotRoomTab() {
|
||||
roomHotAdapter = HomeHotAdapter()
|
||||
roomHotAdapter.onItemClickListener =
|
||||
private fun initListView() {
|
||||
adapter = HomeRoomAdapter()
|
||||
adapter.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
|
||||
val homePlayInfo: HomeRoomInfo? = roomHotAdapter.getItem(position)
|
||||
val homePlayInfo: HomeRoomInfo? = adapter.getItem(position)
|
||||
if (homePlayInfo != null) {
|
||||
//首页_房间派对
|
||||
AVRoomActivity.start(mContext, homePlayInfo.uid)
|
||||
@@ -54,17 +57,22 @@ class HomeRoomHistoryListFragment : BaseViewBindingFragment<HomeTabFragmentBindi
|
||||
}
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setPageSize(20)
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setAdapter(adapter)
|
||||
.setRecyclerView(binding.mRecyclerRoom)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextViewHeight(context, getString(R.string.data_empty)))
|
||||
.setEmptyView(
|
||||
EmptyViewHelper.createEmptyTextViewHeight(
|
||||
context,
|
||||
getString(R.string.data_empty)
|
||||
)
|
||||
)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.build()
|
||||
|
||||
roomHotAdapter.setOnLoadMoreListener({
|
||||
adapter.setOnLoadMoreListener({
|
||||
loadData(false)
|
||||
}, binding.mRecyclerRoom)
|
||||
|
||||
homeViewModel.tabHomeLiveData.observe(this) {
|
||||
viewModel.historyRoomListLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
@@ -80,6 +88,6 @@ class HomeRoomHistoryListFragment : BaseViewBindingFragment<HomeTabFragmentBindi
|
||||
} else {
|
||||
pageNum++
|
||||
}
|
||||
homeViewModel.getHomeTabName(tabId ?: 0, pageNum)
|
||||
viewModel.getHomeHistoryList(pageNum)
|
||||
}
|
||||
}
|
@@ -1,6 +1,7 @@
|
||||
package com.chwl.app.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
@@ -9,21 +10,21 @@ import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.home.HomeViewModel
|
||||
import com.chwl.app.home.adapter.HomeHotAdapter
|
||||
import com.chwl.app.home.adapter.HomeRoomAdapter
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.HomeTabFragmentBinding
|
||||
import com.chwl.app.databinding.HomeTabRoomFragmentBinding
|
||||
import com.chwl.app.support.FragmentVisibleStateHelper
|
||||
|
||||
/**
|
||||
* 首页-房间列表
|
||||
*/
|
||||
class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>(),
|
||||
class HomeTabRoomFragment : BaseViewBindingFragment<HomeTabRoomFragmentBinding>(),
|
||||
SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
private lateinit var roomHotAdapter: HomeHotAdapter
|
||||
private lateinit var adapter: HomeRoomAdapter
|
||||
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
@@ -33,18 +34,20 @@ class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>(),
|
||||
|
||||
private var pageNum = 1
|
||||
private var tabId: Int? = null
|
||||
|
||||
companion object {
|
||||
fun newInstance(tabId: Int): HomeTabFragment {
|
||||
return HomeTabFragment().apply {
|
||||
fun newInstance(tabId: Int): HomeTabRoomFragment {
|
||||
return HomeTabRoomFragment().apply {
|
||||
arguments = Bundle().apply {
|
||||
putInt("tabId", tabId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
tabId = arguments?.getInt("tabId")
|
||||
initHotRoomTab()
|
||||
initListView()
|
||||
if (autoRefreshOnVisible) {
|
||||
FragmentVisibleStateHelper(this).apply {
|
||||
start {
|
||||
@@ -56,11 +59,11 @@ class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>(),
|
||||
}
|
||||
}
|
||||
|
||||
private fun initHotRoomTab() {
|
||||
roomHotAdapter = HomeHotAdapter()
|
||||
roomHotAdapter.onItemClickListener =
|
||||
private fun initListView() {
|
||||
adapter = HomeRoomAdapter()
|
||||
adapter.onItemClickListener =
|
||||
BaseQuickAdapter.OnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
|
||||
val homePlayInfo: HomeRoomInfo? = roomHotAdapter.getItem(position)
|
||||
val homePlayInfo: HomeRoomInfo? = adapter.getItem(position)
|
||||
if (homePlayInfo != null) {
|
||||
//首页_房间派对
|
||||
AVRoomActivity.start(mContext, homePlayInfo.uid)
|
||||
@@ -68,17 +71,22 @@ class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>(),
|
||||
}
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setPageSize(20)
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setAdapter(adapter)
|
||||
.setRecyclerView(binding.mRecyclerRoom)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyTextViewHeight(context, getString(R.string.data_empty)))
|
||||
.setEmptyView(
|
||||
EmptyViewHelper.createEmptyTextViewHeight(
|
||||
context,
|
||||
getString(R.string.data_empty)
|
||||
)
|
||||
)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.build()
|
||||
|
||||
roomHotAdapter.setOnLoadMoreListener({
|
||||
adapter.setOnLoadMoreListener({
|
||||
loadData(false)
|
||||
}, binding.mRecyclerRoom)
|
||||
|
||||
homeViewModel.tabHomeLiveData.observe(this) {
|
||||
homeViewModel.tabRoomListLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
@@ -94,7 +102,7 @@ class HomeTabFragment : BaseViewBindingFragment<HomeTabFragmentBinding>(),
|
||||
} else {
|
||||
pageNum++
|
||||
}
|
||||
homeViewModel.getHomeTabName(tabId ?: 0, pageNum)
|
||||
homeViewModel.getTabRoomList(tabId ?: 0, pageNum)
|
||||
}
|
||||
|
||||
override fun onRefresh() {
|
@@ -16,7 +16,8 @@ import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.app.ui.utils.loadImage
|
||||
import com.chwl.app.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.chwl.core.room.bean.RoomInfo
|
||||
import com.chwl.core.home.bean.HomeRoomCardInfo
|
||||
import com.chwl.core.home.bean.MicUsersBean
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
|
||||
/**
|
||||
@@ -40,6 +41,7 @@ class HomeWithMeFragment : BaseViewBindingFragment<HomeMeFragmentBinding>() {
|
||||
private fun initListener() {
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
it.finishRefresh()
|
||||
viewModel.getMyRoomInfo()
|
||||
childFragmentManager.fragments.forEach {
|
||||
(it as? SwipeRefreshLayout.OnRefreshListener)?.onRefresh()
|
||||
}
|
||||
@@ -80,15 +82,15 @@ class HomeWithMeFragment : BaseViewBindingFragment<HomeMeFragmentBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateRoomInfo(roomInfo: RoomInfo?) {
|
||||
private fun updateRoomInfo(roomInfo: HomeRoomCardInfo?) {
|
||||
binding.tvRoomName.text = roomInfo?.title
|
||||
binding.tvRoomTopic.text = roomInfo?.roomDesc
|
||||
binding.ivRoomCover.loadImage(roomInfo?.backPic ?: "")
|
||||
binding.tvRoomTopic.text = roomInfo?.introduction
|
||||
binding.ivRoomCover.loadImage(roomInfo?.avatar ?: "")
|
||||
binding.tvOnlineNumber.text = roomInfo?.onlineNum?.toString() ?: "0"
|
||||
loadRoomUsers(null)
|
||||
loadRoomUsers(roomInfo?.micUsers)
|
||||
}
|
||||
|
||||
private fun loadRoomUsers(list: List<String>?) {
|
||||
private fun loadRoomUsers(list: List<MicUsersBean>?) {
|
||||
val avatarViewList = arrayOf(
|
||||
binding.ivRoomUser0,
|
||||
binding.ivRoomUser1,
|
||||
@@ -102,9 +104,10 @@ class HomeWithMeFragment : BaseViewBindingFragment<HomeMeFragmentBinding>() {
|
||||
imageView.setImageDrawable(null)
|
||||
imageView.isGone = true
|
||||
} else {
|
||||
imageView.loadAvatar(item)
|
||||
imageView.loadAvatar(item.avatar)
|
||||
imageView.isVisible = true
|
||||
}
|
||||
}
|
||||
binding.layoutRoomUserList.isGone = list.isNullOrEmpty()
|
||||
}
|
||||
}
|
BIN
app/src/main/res/drawable-xxhdpi/home_ic_room_pk.png
Normal file
BIN
app/src/main/res/drawable-xxhdpi/home_ic_room_pk.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
@@ -20,6 +20,16 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:shapeAppearance="@style/shape_home_recommend_item" />
|
||||
|
||||
<com.opensource.svgaplayer.SVGAImageView
|
||||
android:id="@+id/svga_pk"
|
||||
android:layout_width="@dimen/dp_18"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:layout_marginEnd="@dimen/dp_4"
|
||||
android:layout_marginBottom="@dimen/dp_2"
|
||||
android:scaleType="centerCrop"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_room_image"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_room_image" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_room_title"
|
||||
android:layout_width="0dp"
|
@@ -1,141 +0,0 @@
|
||||
<?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="7dp"
|
||||
android:layout_marginEnd="7dp">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
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" />
|
||||
|
||||
<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_room_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="24dp"
|
||||
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/iv_room_image"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="@string/layout_item_home_play_01" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_room_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="11dp"
|
||||
app:layout_constraintStart_toStartOf="@id/tv_room_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_room_title"
|
||||
tools:src="@drawable/tag_101" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_mg_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="11dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="@string/layout_item_home_play_02" />
|
||||
|
||||
<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_constraintBottom_toBottomOf="@id/fl_avatar"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/fl_avatar"
|
||||
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.chwl.app.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.chwl.app.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.chwl.app.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.chwl.app.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.chwl.app.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,156 +0,0 @@
|
||||
<?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="7dp"
|
||||
android:layout_marginEnd="7dp">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:background="@drawable/bg_home_play_item_broadcast"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="722:204"
|
||||
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="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_room_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:ellipsize="end"
|
||||
android:includeFontPadding="false"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/text_primary"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toTopOf="@id/tv_broad_msg"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_room_image"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="@string/layout_item_home_play_broadcast_01" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_broad_msg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:lines="1"
|
||||
android:layout_marginTop="8dp"
|
||||
android:textColor="#ff248cfe"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toTopOf="@id/iv_room_tag"
|
||||
app:layout_constraintStart_toStartOf="@id/tv_room_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_room_title"
|
||||
tools:text="@string/layout_item_home_play_broadcast_02" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_room_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="8dp"
|
||||
app:layout_constraintStart_toStartOf="@id/tv_room_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_broad_msg"
|
||||
tools:src="@drawable/tag_101" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_mg_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="11dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="10sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="@string/layout_item_home_play_broadcast_03" />
|
||||
|
||||
<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/fl_avatar"
|
||||
app:layout_constraintBottom_toBottomOf="@id/fl_avatar"
|
||||
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.chwl.app.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.chwl.app.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.chwl.app.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.chwl.app.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.chwl.app.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,128 +0,0 @@
|
||||
<?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:id="@+id/root_view"
|
||||
android:layout_width="188dp"
|
||||
android:layout_height="96dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_avatar_big"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:src="@drawable/default_cover"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="90:96"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@drawable/bg_single_anchor_home"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.chwl.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_room_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/sp_15"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintLeft_toRightOf="@id/iv_avatar"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_avatar"
|
||||
tools:text="@string/layout_item_home_single_anchor_01" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_nickname"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="10sp"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tv_room_name"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_room_name"
|
||||
tools:text="@string/layout_item_home_single_anchor_02" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_gender"
|
||||
android:layout_width="@dimen/dp_21"
|
||||
android:layout_height="@dimen/dp_14"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_nickname"
|
||||
app:layout_constraintLeft_toRightOf="@id/tv_nickname"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_nickname"
|
||||
tools:src="@drawable/ic_gender_female" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_topic"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/dp_28"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:layout_marginBottom="@dimen/dp_8"
|
||||
android:background="@drawable/bg_9dadff_radius_15"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:visibility="gone"
|
||||
tools:src="@drawable/tag_101" />
|
||||
|
||||
<com.opensource.svgaplayer.SVGAImageView
|
||||
android:id="@+id/iv_pking"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:visibility="gone" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/tv_topic"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_weight="1"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/sp_10"
|
||||
tools:text="@string/layout_item_home_single_anchor_03" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -1,129 +0,0 @@
|
||||
<?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:id="@+id/root_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="6dp"
|
||||
android:orientation="vertical"
|
||||
tools:layout_width="180dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_room_avatar"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:src="@drawable/tag_101" />
|
||||
|
||||
<com.opensource.svgaplayer.SVGAImageView
|
||||
android:id="@+id/iv_pking"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="20dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
/>
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg_bottom"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@drawable/bg_single_anchor_more_bottom"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="334:110"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_room_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:layout_marginBottom="@dimen/dp_8"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:text="@string/layout_item_home_single_anchor_more_01" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_nickname"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/dp_3"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/tv_room_name"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_gender"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="@id/tv_room_name"
|
||||
tools:text="@string/layout_item_home_single_anchor_more_02" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_gender"
|
||||
android:layout_width="21dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:src="@drawable/ic_gender_male"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_nickname"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_nickname"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_nickname" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_online"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:background="@drawable/shape_black_t40_12"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_10"
|
||||
android:layout_height="@dimen/dp_10"
|
||||
android:layout_marginStart="@dimen/dp_7"
|
||||
android:layout_marginTop="@dimen/dp_5"
|
||||
android:layout_marginBottom="@dimen/dp_5"
|
||||
android:src="@drawable/ic_singer_hot" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_online_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_3"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12"
|
||||
tools:text="@string/layout_item_home_single_anchor_more_03" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -1,24 +0,0 @@
|
||||
<?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_marginEnd="15dp"
|
||||
android:layout_marginBottom="15dp">
|
||||
|
||||
<com.chwl.app.ui.widget.rollviewpager.RollPagerView
|
||||
android:id="@+id/roll_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintDimensionRatio="690:160"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:rollviewpager_hint_gravity="left"
|
||||
app:rollviewpager_hint_paddingBottom="8dp"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -1,167 +0,0 @@
|
||||
<?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.chwl.app.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="@string/layout_item_room_hot_01"
|
||||
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="@string/layout_item_room_hot_02" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_room_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="11dp"
|
||||
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="@string/layout_item_room_hot_03" />
|
||||
|
||||
<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.chwl.app.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.chwl.app.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.chwl.app.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.chwl.app.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.chwl.app.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>
|
@@ -1,168 +0,0 @@
|
||||
<?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="6dp"
|
||||
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="@string/layout_item_room_like_01"
|
||||
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:layout_marginTop="20dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/text_primary"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toEndOf="@id/view_room_cover"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="@string/layout_item_room_like_02" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_room_tag"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="11dp"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintStart_toStartOf="@id/tv_room_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_room_title"
|
||||
tools:src="@drawable/tag_101" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="11dp"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="#66333333"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_room_tag"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_room_title"
|
||||
app:layout_goneMarginStart="0dp"
|
||||
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.chwl.app.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.chwl.app.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.chwl.app.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.chwl.app.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.chwl.app.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>
|
Reference in New Issue
Block a user