콘텐츠 리스트, 라이브 중 전체보기

- 그리드 아이템 사이 간격 수정
This commit is contained in:
klaus 2024-03-14 18:27:25 +09:00
parent d091c47a0c
commit 0e131f6661
10 changed files with 46 additions and 29 deletions

View File

@ -90,8 +90,10 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
} }
private fun setupNewContent() { private fun setupNewContent() {
val spanCount = 3
val spacing = 40
newContentAdapter = AudioContentNewAllAdapter( newContentAdapter = AudioContentNewAllAdapter(
itemWidth = (screenWidth - 42f.dpToPx().toInt()) / 3, itemWidth = (screenWidth - (spacing * spanCount)) / 3,
onClickItem = { onClickItem = {
startActivity( startActivity(
Intent(this, AudioContentDetailActivity::class.java).apply { Intent(this, AudioContentDetailActivity::class.java).apply {
@ -108,8 +110,8 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
} }
) )
binding.rvContent.layoutManager = GridLayoutManager(this, 3) binding.rvContent.layoutManager = GridLayoutManager(this, spanCount)
binding.rvContent.addItemDecoration(GridSpacingItemDecoration(3, 13, true)) binding.rvContent.addItemDecoration(GridSpacingItemDecoration(spanCount, spacing, true))
binding.rvContent.addOnScrollListener(object : RecyclerView.OnScrollListener() { binding.rvContent.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {

View File

@ -28,7 +28,6 @@ class AudioContentNewAllAdapter(
private val onClickCreator: (Long) -> Unit private val onClickCreator: (Long) -> Unit
) : RecyclerView.ViewHolder(binding.root) { ) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: GetAudioContentMainItem) { fun bind(item: GetAudioContentMainItem) {
Logger.e("item: $item")
binding.ivAudioContentCoverImage.load(item.coverImageUrl) { binding.ivAudioContentCoverImage.load(item.coverImageUrl) {
crossfade(true) crossfade(true)
placeholder(R.drawable.ic_place_holder) placeholder(R.drawable.ic_place_holder)

View File

@ -56,8 +56,10 @@ class AudioContentAllByThemeActivity : BaseActivity<ActivityAudioContentAllByThe
loadingDialog = LoadingDialog(this, layoutInflater) loadingDialog = LoadingDialog(this, layoutInflater)
binding.toolbar.tvBack.setOnClickListener { finish() } binding.toolbar.tvBack.setOnClickListener { finish() }
val spanCount = 3
val spacing = 40
adapter = AudioContentNewAllAdapter( adapter = AudioContentNewAllAdapter(
itemWidth = (screenWidth - 42f.dpToPx().toInt()) / 3, itemWidth = (screenWidth - (spacing * spanCount)) / 3,
onClickItem = { onClickItem = {
startActivity( startActivity(
Intent(this, AudioContentDetailActivity::class.java).apply { Intent(this, AudioContentDetailActivity::class.java).apply {
@ -74,8 +76,8 @@ class AudioContentAllByThemeActivity : BaseActivity<ActivityAudioContentAllByThe
} }
) )
binding.rvContentAll.layoutManager = GridLayoutManager(this, 3) binding.rvContentAll.layoutManager = GridLayoutManager(this, spanCount)
binding.rvContentAll.addItemDecoration(GridSpacingItemDecoration(3, 13, true)) binding.rvContentAll.addItemDecoration(GridSpacingItemDecoration(spanCount, spacing, true))
binding.rvContentAll.addOnScrollListener(object : RecyclerView.OnScrollListener() { binding.rvContentAll.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {

View File

@ -55,8 +55,10 @@ class AudioContentCurationActivity : BaseActivity<ActivityAudioContentCurationBi
binding.toolbar.tvBack.text = title binding.toolbar.tvBack.text = title
binding.toolbar.tvBack.setOnClickListener { finish() } binding.toolbar.tvBack.setOnClickListener { finish() }
val spanCount = 3
val spacing = 40
adapter = AudioContentNewAllAdapter( adapter = AudioContentNewAllAdapter(
itemWidth = (screenWidth - 42f.dpToPx().toInt()) / 3, itemWidth = (screenWidth - (spacing * spanCount)) / 3,
onClickItem = { onClickItem = {
startActivity( startActivity(
Intent(this, AudioContentDetailActivity::class.java).apply { Intent(this, AudioContentDetailActivity::class.java).apply {
@ -73,8 +75,8 @@ class AudioContentCurationActivity : BaseActivity<ActivityAudioContentCurationBi
} }
) )
binding.rvCuration.layoutManager = GridLayoutManager(this, 3) binding.rvCuration.layoutManager = GridLayoutManager(this, spanCount)
binding.rvCuration.addItemDecoration(GridSpacingItemDecoration(3, 13, true)) binding.rvCuration.addItemDecoration(GridSpacingItemDecoration(spanCount, spacing, true))
binding.rvCuration.addOnScrollListener(object : RecyclerView.OnScrollListener() { binding.rvCuration.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {

View File

@ -67,6 +67,8 @@ class LiveNowAdapter(
transformations(CircleCropTransformation()) transformations(CircleCropTransformation())
} }
if (item.numberOfPeople - item.numberOfParticipate <= 2) {
binding.llRemainingParticipant.visibility = View.VISIBLE
if (item.numberOfPeople > item.numberOfParticipate) { if (item.numberOfPeople > item.numberOfParticipate) {
binding.tvRemainingParticipantNumber.visibility = View.VISIBLE binding.tvRemainingParticipantNumber.visibility = View.VISIBLE
binding.tvRemainingParticipant.text = "잔여" binding.tvRemainingParticipant.text = "잔여"
@ -77,6 +79,9 @@ class LiveNowAdapter(
binding.tvRemainingParticipant.text = "Sold out" binding.tvRemainingParticipant.text = "Sold out"
binding.tvRemainingParticipantNumber.text = "" binding.tvRemainingParticipantNumber.text = ""
} }
} else {
binding.llRemainingParticipant.visibility = View.GONE
}
binding.root.setOnClickListener { onClick(item) } binding.root.setOnClickListener { onClick(item) }
} }

View File

@ -46,8 +46,10 @@ class LiveNowAllActivity : BaseActivity<ActivityLiveNowAllBinding>(
binding.toolbar.tvBack.setOnClickListener { finish() } binding.toolbar.tvBack.setOnClickListener { finish() }
loadingDialog = LoadingDialog(this, layoutInflater) loadingDialog = LoadingDialog(this, layoutInflater)
val spanCount = 3
val spacing = 40
val recyclerView = binding.rvLive val recyclerView = binding.rvLive
adapter = LiveNowAllAdapter { adapter = LiveNowAllAdapter(itemWidth = (screenWidth - (spacing * spanCount)) / 3) {
val detailFragment = LiveRoomDetailFragment( val detailFragment = LiveRoomDetailFragment(
it.roomId, it.roomId,
onClickParticipant = { enterLiveRoom(it.roomId) }, onClickParticipant = { enterLiveRoom(it.roomId) },
@ -63,8 +65,8 @@ class LiveNowAllActivity : BaseActivity<ActivityLiveNowAllBinding>(
) )
} }
recyclerView.layoutManager = GridLayoutManager(this, 3) recyclerView.layoutManager = GridLayoutManager(this, spanCount)
recyclerView.addItemDecoration(GridSpacingItemDecoration(3, 13, true)) recyclerView.addItemDecoration(GridSpacingItemDecoration(spanCount, spacing, true))
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {

View File

@ -1,23 +1,21 @@
package kr.co.vividnext.sodalive.live.now.all package kr.co.vividnext.sodalive.live.now.all
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.ContextCompat import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load
import coil.transform.CircleCropTransformation import coil.transform.CircleCropTransformation
import coil.transform.RoundedCornersTransformation import coil.transform.RoundedCornersTransformation
import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.databinding.ItemLiveNowAllBinding import kr.co.vividnext.sodalive.databinding.ItemLiveNowAllBinding
import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.dpToPx
import kr.co.vividnext.sodalive.extensions.loadUrl import kr.co.vividnext.sodalive.extensions.loadUrl
import kr.co.vividnext.sodalive.extensions.moneyFormat
import kr.co.vividnext.sodalive.live.GetRoomListResponse import kr.co.vividnext.sodalive.live.GetRoomListResponse
class LiveNowAllAdapter( class LiveNowAllAdapter(
private val itemWidth: Int,
private val onClick: (GetRoomListResponse) -> Unit private val onClick: (GetRoomListResponse) -> Unit
) : RecyclerView.Adapter<LiveNowAllAdapter.ViewHolder>() { ) : RecyclerView.Adapter<LiveNowAllAdapter.ViewHolder>() {
@ -33,6 +31,12 @@ class LiveNowAllAdapter(
placeholder(R.drawable.ic_place_holder) placeholder(R.drawable.ic_place_holder)
transformations(RoundedCornersTransformation(4.7f.dpToPx())) transformations(RoundedCornersTransformation(4.7f.dpToPx()))
} }
val lp = binding.ivCover.layoutParams as ConstraintLayout.LayoutParams
lp.width = itemWidth
lp.height = itemWidth * 144 / 102
binding.ivCover.layoutParams = lp
binding.ivLock.visibility = if (item.isPrivateRoom) { binding.ivLock.visibility = if (item.isPrivateRoom) {
View.VISIBLE View.VISIBLE
} else { } else {

View File

@ -7,8 +7,8 @@
<ImageView <ImageView
android:id="@+id/iv_audio_content_cover_image" android:id="@+id/iv_audio_content_cover_image"
android:layout_width="133.3dp" android:layout_width="wrap_content"
android:layout_height="133.3dp" android:layout_height="wrap_content"
android:contentDescription="@null" android:contentDescription="@null"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />

View File

@ -57,6 +57,7 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<LinearLayout <LinearLayout
android:id="@+id/ll_remaining_participant"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="3.3dp" android:layout_marginEnd="3.3dp"

View File

@ -7,8 +7,8 @@
<ImageView <ImageView
android:id="@+id/iv_cover" android:id="@+id/iv_cover"
android:layout_width="102dp" android:layout_width="wrap_content"
android:layout_height="144dp" android:layout_height="wrap_content"
android:contentDescription="@null" android:contentDescription="@null"
android:scaleType="centerCrop" android:scaleType="centerCrop"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"