Commit 097785f2 authored by wanglei's avatar wanglei

...

parent fe2198dc
...@@ -17,9 +17,9 @@ ...@@ -17,9 +17,9 @@
android:allowBackup="true" android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules" android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules" android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/logo"
android:label="@string/app_name" android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/logo"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.LocalWeatherWhite" android:theme="@style/Theme.LocalWeatherWhite"
tools:targetApi="31"> tools:targetApi="31">
......
...@@ -22,10 +22,16 @@ object LimitUtils { ...@@ -22,10 +22,16 @@ object LimitUtils {
* 保存的时间,用来判断是否是当天,不是当天要重置计数次数 * 保存的时间,用来判断是否是当天,不是当天要重置计数次数
*/ */
private var saveDate private var saveDate
get() = AppPreferences.getInstance() get() = getSaveDateSetDefault()
.getString(SAVE_DATE, System.currentTimeMillis().toFormatTime4())
set(value) = AppPreferences.getInstance().put(SAVE_DATE, value) set(value) = AppPreferences.getInstance().put(SAVE_DATE, value)
private fun getSaveDateSetDefault(): String {
val date = AppPreferences.getInstance().getString(SAVE_DATE, "") ?: ""
if (date == "") {
saveDate = System.currentTimeMillis().toFormatTime4()
}
return date
}
/** /**
* 广告请求是否到达限制 * 广告请求是否到达限制
......
...@@ -28,25 +28,26 @@ class BannerAdapter( ...@@ -28,25 +28,26 @@ class BannerAdapter(
private val TAG = "BannerAdapter" private val TAG = "BannerAdapter"
var paletteAction: ((colorInt: Int) -> Unit)? = null var paletteAction: ((colorInt: Int) -> Unit)? = null
var playAction: ((shortPlay: ShortPlay) -> Unit)? = null var playAction: ((shortPlay: ShortPlay) -> Unit)? = null
var binding: ItemBannerBinding? = null
override fun getItemCount(items: List<Any>): Int { override fun getItemCount(items: List<Any>): Int {
return 1 return 1
} }
override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: Any?) { override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: Any?) {
val binding = ItemBannerBinding.bind(holder.itemView) binding = ItemBannerBinding.bind(holder.itemView)
val context = holder.itemView.context val context = holder.itemView.context
LogEx.logDebug(TAG, "onBindViewHolder") LogEx.logDebug(TAG, "onBindViewHolder")
if (binding.banner.adapter == null) { if (binding?.banner?.adapter == null) {
LogEx.logDebug(TAG, "onBindViewHolder banner") LogEx.logDebug(TAG, "onBindViewHolder banner")
binding.banner.setAdapter(GalleryAdapter(shortPlayList)) binding?.banner?.setAdapter(GalleryAdapter(shortPlayList))
//添加画廊效果 //添加画廊效果
binding.banner.setBannerGalleryEffect( binding?.banner?.setBannerGalleryEffect(
context.resources.getDimensionPixelSize(R.dimen.dp_30), context.resources.getDimensionPixelSize(R.dimen.dp_30),
context.resources.getDimensionPixelSize(R.dimen.dp_10) context.resources.getDimensionPixelSize(R.dimen.dp_10)
) )
binding.banner.setIndicator(binding.indicator, false) binding?.banner?.setIndicator(binding?.indicator, false)
} }
} }
...@@ -94,4 +95,8 @@ class BannerAdapter( ...@@ -94,4 +95,8 @@ class BannerAdapter(
} }
}) })
} }
fun setBannerAutoLoop(isAutoLoop: Boolean) {
binding?.banner?.isAutoLoop(isAutoLoop)
}
} }
\ No newline at end of file
package com.base.appzxhy.ui.concatAdapter
import android.content.Context
import android.view.ViewGroup
import com.base.appzxhy.R
import com.base.appzxhy.databinding.ItemShortplayCategoryBinding
import com.base.appzxhy.databinding.ItemShortplayStyle3Binding
import com.base.appzxhy.ui.adapter.CommonViewHolder
import com.base.appzxhy.utils.XmlEx.inflate
import com.bumptech.glide.Glide
import com.bytedance.sdk.shortplay.api.ShortPlay
import com.chad.library.adapter4.BaseQuickAdapter
class ShortPlayCategoryAdapter(
val category: String = "",
val shortList: List<ShortPlay>
) : BaseQuickAdapter<Any, CommonViewHolder>() {
override fun getItemCount(items: List<Any>): Int {
return 1
}
override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: Any?) {
val binding = ItemShortplayCategoryBinding.bind(holder.itemView)
binding.tvCategory.text = category
if (binding.rv.adapter == null) {
val adapter = WatchShortAdapter()
binding.rv.adapter = adapter
adapter.submitList(shortList)
}
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): CommonViewHolder {
return CommonViewHolder(R.layout.item_shortplay_category.inflate(parent))
}
inner class WatchShortAdapter : BaseQuickAdapter<ShortPlay, CommonViewHolder>() {
override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: ShortPlay?) {
item ?: return
val binding = ItemShortplayStyle3Binding.bind(holder.itemView)
binding.tvName.text=item.title
Glide.with(context).load(item.coverImage).into(binding.iv)
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): CommonViewHolder {
return CommonViewHolder(R.layout.item_shortplay_style_3.inflate(parent))
}
}
}
\ No newline at end of file
...@@ -45,7 +45,9 @@ class ShortPlayColumnsAdapter( ...@@ -45,7 +45,9 @@ class ShortPlayColumnsAdapter(
val context = holder.itemView.context val context = holder.itemView.context
Glide.with(context).load(item.coverImage).into(binding.iv) Glide.with(context).load(item.coverImage).into(binding.iv)
binding.tvName.text = item.title binding.tvName.text = item.title
binding.tvCategory.text = item.desc kotlin.runCatching {
binding.tvCategory.text = item.categories[0].name
}
} }
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): CommonViewHolder { override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): CommonViewHolder {
......
package com.base.appzxhy.ui.concatAdapter
import android.content.Context
import android.view.ViewGroup
import com.base.appzxhy.R
import com.base.appzxhy.databinding.ItemShortplayWatchBinding
import com.base.appzxhy.ui.adapter.CommonViewHolder
import com.base.appzxhy.utils.XmlEx.inflate
import com.bytedance.sdk.shortplay.api.ShortPlay
import com.chad.library.adapter4.BaseQuickAdapter
class ShortPlayWatchAdapter(
val list: List<ShortPlay>
) : BaseQuickAdapter<Any, CommonViewHolder>() {
override fun getItemCount(items: List<Any>): Int {
return 1
}
override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: Any?) {
val binding = ItemShortplayWatchBinding.bind(holder.itemView)
if (binding.rv.adapter == null) {
// val adapter =
}
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): CommonViewHolder {
return CommonViewHolder(R.layout.item_shortplay_watch.inflate(parent))
}
inner class WatchShortAdapter : BaseQuickAdapter<ShortPlay, CommonViewHolder>() {
override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: ShortPlay?) {
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): CommonViewHolder {
return CommonViewHolder(R.layout.item_shortplay_style_2.inflate(parent))
}
}
}
\ No newline at end of file
...@@ -7,6 +7,7 @@ import androidx.recyclerview.widget.ConcatAdapter ...@@ -7,6 +7,7 @@ import androidx.recyclerview.widget.ConcatAdapter
import com.base.appzxhy.base.BaseFragment import com.base.appzxhy.base.BaseFragment
import com.base.appzxhy.databinding.FragmentHomeBinding import com.base.appzxhy.databinding.FragmentHomeBinding
import com.base.appzxhy.ui.concatAdapter.BannerAdapter import com.base.appzxhy.ui.concatAdapter.BannerAdapter
import com.base.appzxhy.ui.concatAdapter.ShortPlayColumnsAdapter
import com.base.appzxhy.ui.play.PlayFullActivity import com.base.appzxhy.ui.play.PlayFullActivity
import com.base.appzxhy.ui.vm.ShortPlayViewModel import com.base.appzxhy.ui.vm.ShortPlayViewModel
import com.base.appzxhy.utils.BarUtils import com.base.appzxhy.utils.BarUtils
...@@ -17,6 +18,7 @@ import com.google.gson.Gson ...@@ -17,6 +18,7 @@ import com.google.gson.Gson
class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::inflate) { class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::inflate) {
private var contactAdapter: ConcatAdapter? = null private var contactAdapter: ConcatAdapter? = null
private var bannerAdapter: BannerAdapter? = null
private val viewModel by lazy(LazyThreadSafetyMode.NONE) { private val viewModel by lazy(LazyThreadSafetyMode.NONE) {
ViewModelProvider(this)[ShortPlayViewModel::class.java] ViewModelProvider(this)[ShortPlayViewModel::class.java]
...@@ -24,33 +26,56 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::infl ...@@ -24,33 +26,56 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::infl
override fun initView() { override fun initView() {
super.initView() super.initView()
binding.rv.updatePadding(top = BarUtils.getStatusBarHeight()) binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
contactAdapter = ConcatAdapter() contactAdapter = ConcatAdapter()
binding.rv.adapter = contactAdapter binding.rv.adapter = contactAdapter
initBannerAdapter() initBannerAdapter()
initNewShortAdapter()
} }
private fun initBannerAdapter() { private fun initBannerAdapter() {
viewModel.getRequestPopularDrama { list -> viewModel.getPopularDrama { list ->
val activity = requireActivity() as MainActivity? val activity = requireActivity() as MainActivity?
activity?.runOnUiThread { activity?.runOnUiThread {
LogEx.logDebug(TAG, "list=${list.size}") LogEx.logDebug(TAG, "list=${list.size}")
val bannerAdapter = BannerAdapter(list) bannerAdapter = BannerAdapter(list)
bannerAdapter.paletteAction = { bannerAdapter?.let {
binding.root.setBackgroundColor(it) it.paletteAction = {
binding.root.setBackgroundColor(it)
}
it.playAction = { shortPlay ->
startActivity(Intent(activity, PlayFullActivity::class.java).apply {
putExtra("data", Gson().toJson(shortPlay))
})
}
contactAdapter?.addAdapter(0, it)
} }
bannerAdapter.playAction = { shortPlay ->
startActivity(Intent(activity, PlayFullActivity::class.java).apply {
putExtra("data", Gson().toJson(shortPlay))
})
}
contactAdapter?.addAdapter(0, bannerAdapter)
} }
} }
} }
override fun onResume() {
super.onResume()
bannerAdapter?.setBannerAutoLoop(true)
}
override fun onPause() {
super.onPause()
bannerAdapter?.setBannerAutoLoop(false)
}
private fun initNewShortAdapter() {
viewModel.getNewDrama { list ->
val activity = requireActivity() as MainActivity?
activity?.runOnUiThread {
val adapter = ShortPlayColumnsAdapter("New Short", list)
contactAdapter?.addAdapter(adapter)
}
}
}
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
} }
......
...@@ -95,10 +95,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl ...@@ -95,10 +95,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
override fun configSystemBar() { override fun configSystemBar() {
immersionBar { immersionBar {
statusBarColor("#00FFFFFF") statusBarColor("#00FFFFFF")
// navigationBarColor("#FFFFFFFF")
statusBarDarkFont(false) statusBarDarkFont(false)
// navigationBarDarkIcon(true)
// fitsSystemWindows(true)
} }
} }
......
...@@ -19,14 +19,14 @@ class ShortPlayViewModel : ViewModel() { ...@@ -19,14 +19,14 @@ class ShortPlayViewModel : ViewModel() {
/** /**
* 获取热门短剧列表 * 获取热门短剧列表
*/ */
fun getRequestPopularDrama( fun getPopularDrama(
count: Int = 10, count: Int = 10,
uiAction: (list: List<ShortPlay>) -> Unit uiAction: (list: List<ShortPlay>) -> Unit
) { ) {
PSSDK.requestPopularDrama(1, count, object : FeedListResultListener { PSSDK.requestPopularDrama(1, count, object : FeedListResultListener {
override fun onFail(errorInfo: PSSDK.ErrorInfo?) { override fun onFail(errorInfo: PSSDK.ErrorInfo?) {
LogEx.logDebug(TAG, "getRequestPopularDrama ${errorInfo?.msg} ${errorInfo?.code}") LogEx.logDebug(TAG, "requestPopularDrama ${errorInfo?.msg} ${errorInfo?.code}")
} }
override fun onSuccess(result: FeedListLoadResult<ShortPlay>?) { override fun onSuccess(result: FeedListLoadResult<ShortPlay>?) {
...@@ -38,6 +38,26 @@ class ShortPlayViewModel : ViewModel() { ...@@ -38,6 +38,26 @@ class ShortPlayViewModel : ViewModel() {
}) })
} }
/**
* 获取近期新增短剧列表
*/
fun getNewDrama(
count: Int = 12,
uiAction: (list: List<ShortPlay>) -> Unit
) {
PSSDK.requestNewDrama(1, count, object : FeedListResultListener {
override fun onFail(errorInfo: PSSDK.ErrorInfo?) {
LogEx.logDebug(TAG, "requestNewDrama ${errorInfo?.msg} ${errorInfo?.code}")
}
override fun onSuccess(result: FeedListLoadResult<ShortPlay>?) {
LogEx.logDebug(TAG, "dataList=${result?.dataList?.size}")
result?.dataList?.let { uiAction.invoke(it) }
}
})
}
/** /**
* 加载分类 * 加载分类
*/ */
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="#61FFFFFF" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
...@@ -6,13 +6,47 @@ ...@@ -6,13 +6,47 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/black" android:background="@color/black"
android:orientation="vertical"
tools:context=".ui.main.HomeFragment"> tools:context=".ui.main.HomeFragment">
<LinearLayout
android:id="@+id/llSearch"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="5dp"
android:background="@drawable/bg_stroke_61ffffff_10"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="15dp"
android:src="@mipmap/h_shousuo"
tools:ignore="ContentDescription" />
<EditText
android:id="@+id/editSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="13dp"
android:background="@null"
android:singleLine="true"
android:textColor="#80FFFFFF"
android:textColorHint="#80FFFFFF"
android:textSize="17sp"
tools:hint="Snatched a Billionaire to be My H..."
tools:ignore="Autofill,LabelFor,TextFields,TouchTargetSizeCheck,VisualLintTextFieldSize" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv" android:id="@+id/rv"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginTop="58dp" android:layout_marginTop="14dp"
android:overScrollMode="never" android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="6dp" android:layout_height="6dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp" /> android:layout_marginTop="15dp"
android:layout_marginBottom="20dp" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
<?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:background="@color/black">
<TextView
android:id="@+id/tvCategory"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Second Chance" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@id/tvCategory"
tools:listitem="@layout/item_shortplay_style_3" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -21,10 +21,11 @@ ...@@ -21,10 +21,11 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv" android:id="@+id/rv"
android:layout_width="match_parent" android:layout_width="match_parent"
android:paddingHorizontal="8dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:orientation="horizontal" android:orientation="horizontal"
android:overScrollMode="never"
android:paddingHorizontal="8dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvCategory" app:layout_constraintTop_toBottomOf="@id/tvCategory"
......
...@@ -21,7 +21,9 @@ ...@@ -21,7 +21,9 @@
android:id="@+id/iv" android:id="@+id/iv"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<TextView <TextView
...@@ -36,6 +38,7 @@ ...@@ -36,6 +38,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/card" app:layout_constraintStart_toEndOf="@id/card"
app:layout_constraintTop_toTopOf="@id/card" app:layout_constraintTop_toTopOf="@id/card"
tools:ignore="TextSizeCheck"
tools:text="The Quarterback Next Door" /> tools:text="The Quarterback Next Door" />
<TextView <TextView
......
<?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="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="4dp"
tools:background="@color/black">
<androidx.cardview.widget.CardView
android:id="@+id/card"
android:layout_width="108dp"
android:layout_height="142dp"
app:cardCornerRadius="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:ignore="ContentDescription" />
</androidx.cardview.widget.CardView>
<TextView
android:id="@+id/tvName"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:maxLines="2"
android:textColor="@color/white"
android:textSize="14sp"
android:layout_marginTop="15dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/card"
tools:ignore="TextSizeCheck"
tools:text="The Quarterback Next Door" />
<TextView
android:id="@+id/tvWatchEP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="4dp"
android:layout_marginTop="4dp"
android:singleLine="true"
android:textColor="#FF3D71"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvName"
tools:text="EP.O / EP.82" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="4dp"
tools:background="@color/black">
<androidx.cardview.widget.CardView
android:id="@+id/card"
android:layout_width="108dp"
android:layout_height="142dp"
app:cardCornerRadius="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:ignore="ContentDescription" />
</androidx.cardview.widget.CardView>
<TextView
android:id="@+id/tvName"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="5dp"
android:maxLines="2"
android:textColor="@color/white"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/card"
tools:ignore="TextSizeCheck"
tools:text="The Quarterback Next Door" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:background="@color/black">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:text="@string/continue_watching"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTitle"
tools:listitem="@layout/item_shortplay_style_2" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -11,5 +11,6 @@ ...@@ -11,5 +11,6 @@
<string name="for_you">For you</string> <string name="for_you">For you</string>
<string name="my_list">My List</string> <string name="my_list">My List</string>
<string name="rewards">Rewards</string> <string name="rewards">Rewards</string>
<string name="continue_watching">Continue Watching</string>
</resources> </resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment