[Modify]首页和夺宝修改
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package com.yizhuan.erban.home.adapter
|
||||
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo
|
||||
import com.zhpan.bannerview.BaseBannerAdapter
|
||||
import com.zhpan.bannerview.BaseViewHolder
|
||||
|
||||
class HomeBannerAdapter : BaseBannerAdapter<BannerInfo?>() {
|
||||
override fun getLayoutId(viewType: Int): Int {
|
||||
return R.layout.activity_home_banner
|
||||
}
|
||||
|
||||
override fun bindData(
|
||||
helper: BaseViewHolder<BannerInfo?>,
|
||||
item: BannerInfo?,
|
||||
position: Int,
|
||||
pageSize: Int
|
||||
) {
|
||||
ImageLoadUtilsV2.loadImage(helper.findViewById(R.id.iv_cover), item?.bannerPic)
|
||||
}
|
||||
}
|
@@ -148,7 +148,7 @@ class AccompanyFragment : BaseViewBindingFragment<FragmentAccompanyBinding>() {
|
||||
private fun showGameGuide(){
|
||||
val userInfo = UserModel.get().cacheLoginUserInfo
|
||||
if (userInfo?.isHasPermitRoom == true) {
|
||||
binding.ivGameGuide.visibility = View.VISIBLE
|
||||
binding.ivGameGuide.visibility = View.GONE
|
||||
} else {
|
||||
binding.ivGameGuide.visibility = View.GONE
|
||||
}
|
||||
|
@@ -14,21 +14,25 @@ import com.yizhuan.erban.avroom.activity.AVRoomActivity
|
||||
import com.yizhuan.erban.base.BaseViewBindingFragment
|
||||
import com.yizhuan.erban.databinding.FragmentHomeBinding
|
||||
import com.yizhuan.erban.home.HomeViewModel
|
||||
import com.yizhuan.erban.home.adapter.HomeBannerAdapter
|
||||
import com.yizhuan.erban.home.dialog.RecommendRoomDialog
|
||||
import com.yizhuan.erban.home.helper.BannerHelper
|
||||
import com.yizhuan.erban.home.helper.OpenRoomHelper
|
||||
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity
|
||||
import com.yizhuan.erban.ui.search.SearchActivity
|
||||
import com.yizhuan.erban.ui.user.adapter.MainIndicatorAdapter
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
|
||||
import com.yizhuan.erban.ui.utils.load
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.yizhuan.erban.utils.CommonJumpHelper
|
||||
import com.yizhuan.xchat_android_core.DemoCache
|
||||
import com.yizhuan.xchat_android_core.UriProvider
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import com.zhpan.bannerview.BannerViewPager
|
||||
|
||||
/**
|
||||
* Peko首页
|
||||
@@ -40,23 +44,40 @@ class HomeFragment : BaseViewBindingFragment<FragmentHomeBinding>(), View.OnClic
|
||||
private val mTabInfoList = mutableListOf<HomeTagInfo>()
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
private var mBanner: BannerViewPager<BannerInfo>? = null
|
||||
|
||||
companion object {
|
||||
private const val TAG = "HomeFragment"
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
mBanner = view?.findViewById<BannerViewPager<BannerInfo>>(R.id.banner)
|
||||
initTitleTab()
|
||||
initListener()
|
||||
homeViewModel.bannerLiveData.observe(this) {
|
||||
it?.let {
|
||||
BannerHelper.setBanner(binding.rollView, it) { _, _ ->
|
||||
//首页_banner
|
||||
ReportManager.get().reportEvent(
|
||||
IReportConstants.MODULE_HOMEPAGE_CLICK, mapOf(
|
||||
Pair(IReportConstants.HOMEPAGE_TYPE, IReportConstants.SIX),
|
||||
Pair(IReportConstants.MODULE, IReportConstants.PEKO_HOMEPAGE)
|
||||
)
|
||||
)
|
||||
if (ListUtils.isListEmpty(it)) {
|
||||
mBanner?.visibility = View.GONE
|
||||
return@let
|
||||
}
|
||||
mBanner?.visibility = View.VISIBLE
|
||||
mBanner?.adapter = HomeBannerAdapter()
|
||||
mBanner?.post {
|
||||
mBanner?.apply {
|
||||
this.setPageMargin(UIUtil.dip2px(mContext, 8.0))
|
||||
.setScrollDuration(800)
|
||||
.setOnPageClickListener { _: View?, position: Int ->
|
||||
//首页_banner
|
||||
ReportManager.get().reportEvent(
|
||||
IReportConstants.MODULE_HOMEPAGE_CLICK, mapOf(
|
||||
Pair(IReportConstants.HOMEPAGE_TYPE, IReportConstants.SIX),
|
||||
Pair(IReportConstants.MODULE, IReportConstants.PEKO_HOMEPAGE)
|
||||
)
|
||||
)
|
||||
CommonJumpHelper.bannerJump(context, it[position])
|
||||
}
|
||||
.create(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,12 +1,10 @@
|
||||
package com.yizhuan.erban.treasurefairy.adapter
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
|
||||
import com.yizhuan.xchat_android_core.treasurefairy.ExchangeGiftInfo
|
||||
import com.yizhuan.xchat_android_core.treasurefairy.PropItemInfo
|
||||
|
||||
class ExchangeDebrisAdapter :
|
||||
BaseQuickAdapter<ExchangeGiftInfo, BaseViewHolder>(R.layout.treasure_fairy_item_exchange_debris) {
|
||||
@@ -15,18 +13,6 @@ class ExchangeDebrisAdapter :
|
||||
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_prize_icon), item.rewardPicUrl)
|
||||
helper.setText(R.id.tv_prize_name, item.getPrizeName())
|
||||
|
||||
val adapter: BaseQuickAdapter<PropItemInfo, BaseViewHolder> =
|
||||
object : BaseQuickAdapter<PropItemInfo, BaseViewHolder>(R.layout.item_exchange_debris) {
|
||||
override fun convert(helper: BaseViewHolder, item: PropItemInfo) {
|
||||
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_icon), item.picUrl)
|
||||
helper.setText(R.id.tv_num, "${item.propName}x${item.propNum}")
|
||||
}
|
||||
}
|
||||
helper.getView<RecyclerView>(R.id.mRecyclerView).adapter = adapter
|
||||
item.propItems?.let {
|
||||
adapter.setNewData(it)
|
||||
}
|
||||
|
||||
helper.addOnClickListener(R.id.tv_exchange)
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,33 @@
|
||||
package com.yizhuan.erban.treasurefairy.adapter
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
|
||||
import com.yizhuan.xchat_android_core.treasurefairy.ExchangeGiftInfo
|
||||
import com.yizhuan.xchat_android_core.treasurefairy.PropItemInfo
|
||||
|
||||
class ExchangeSummonAdapter :
|
||||
BaseQuickAdapter<ExchangeGiftInfo, BaseViewHolder>(R.layout.treasure_fairy_item_exchange_summon) {
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: ExchangeGiftInfo) {
|
||||
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_prize_icon), item.rewardPicUrl)
|
||||
helper.setText(R.id.tv_prize_name, item.getPrizeName())
|
||||
|
||||
val adapter: BaseQuickAdapter<PropItemInfo, BaseViewHolder> =
|
||||
object : BaseQuickAdapter<PropItemInfo, BaseViewHolder>(R.layout.item_exchange_debris) {
|
||||
override fun convert(helper: BaseViewHolder, item: PropItemInfo) {
|
||||
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_icon), item.picUrl)
|
||||
helper.setText(R.id.tv_num, "${item.propName}x${item.propNum}")
|
||||
}
|
||||
}
|
||||
helper.getView<RecyclerView>(R.id.mRecyclerView).adapter = adapter
|
||||
item.propItems?.let {
|
||||
adapter.setNewData(it)
|
||||
}
|
||||
|
||||
helper.addOnClickListener(R.id.tv_exchange)
|
||||
}
|
||||
|
||||
}
|
@@ -13,6 +13,7 @@ import com.yizhuan.erban.databinding.TreasureFairyDialogExchangeBinding
|
||||
import com.yizhuan.erban.treasurefairy.FairyViewModel
|
||||
import com.yizhuan.erban.treasurefairy.fragment.ExchangeDebrisFragment
|
||||
import com.yizhuan.erban.treasurefairy.fragment.ExchangeFairyFragment
|
||||
import com.yizhuan.erban.treasurefairy.fragment.ExchangeSummonFragment
|
||||
|
||||
class ExchangeFairyDialog : BaseDialog<TreasureFairyDialogExchangeBinding>() {
|
||||
|
||||
@@ -56,8 +57,8 @@ class ExchangeFairyDialog : BaseDialog<TreasureFairyDialogExchangeBinding>() {
|
||||
binding?.viewPager?.adapter = RoomVPAdapter(
|
||||
childFragmentManager,
|
||||
listOf(
|
||||
ExchangeDebrisFragment.newInstance(1),
|
||||
ExchangeDebrisFragment.newInstance(2)
|
||||
ExchangeSummonFragment.newInstance(),
|
||||
ExchangeDebrisFragment.newInstance()
|
||||
)
|
||||
)
|
||||
viewModel.getMyFairyInfo()
|
||||
|
@@ -2,7 +2,9 @@ package com.yizhuan.erban.treasurefairy.fragment
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import androidx.activity.viewModels
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.yizhuan.erban.R
|
||||
@@ -22,21 +24,18 @@ class ExchangeDebrisFragment :
|
||||
BaseViewBindingFragment<TreasureFairyFragmentExchangeDebrisBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(fairyType: Int): ExchangeDebrisFragment {
|
||||
fun newInstance(): ExchangeDebrisFragment {
|
||||
val args = Bundle()
|
||||
args.putInt("fairyType", fairyType)
|
||||
val fragment = ExchangeDebrisFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private val viewModel: FairyViewModel by activityViewModels()
|
||||
private val viewModel: FairyViewModel by viewModels()
|
||||
private lateinit var rvDelegate: RVDelegate<ExchangeGiftInfo>
|
||||
private lateinit var debrisAdapter: ExchangeDebrisAdapter
|
||||
|
||||
private val fairyType by lazy { requireArguments().getInt("fairyType", 1) }
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun init() {
|
||||
debrisAdapter = ExchangeDebrisAdapter()
|
||||
@@ -51,11 +50,6 @@ class ExchangeDebrisFragment :
|
||||
)
|
||||
.setLayoutManager(GridLayoutManager(context, 2, LinearLayoutManager.VERTICAL, false))
|
||||
.build()
|
||||
if(fairyType == 1){
|
||||
viewModel.getFairyCallList()
|
||||
} else {
|
||||
viewModel.getDebrisExchangeList()
|
||||
}
|
||||
viewModel.fairyCallInfoLiveData.observe(viewLifecycleOwner) {
|
||||
rvDelegate.setNewData(it)
|
||||
}
|
||||
@@ -70,6 +64,7 @@ class ExchangeDebrisFragment :
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.getDebrisExchangeList()
|
||||
viewModel.getMyFairyInfo()
|
||||
|
||||
viewModel.myFairyInfoLiveData.observe(viewLifecycleOwner) {
|
||||
|
@@ -0,0 +1,89 @@
|
||||
package com.yizhuan.erban.treasurefairy.fragment
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import androidx.activity.viewModels
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseViewBindingFragment
|
||||
import com.yizhuan.erban.common.EmptyViewHelper
|
||||
import com.yizhuan.erban.databinding.TreasureFairyFragmentExchangeDebrisBinding
|
||||
import com.yizhuan.erban.treasurefairy.FairyViewModel
|
||||
import com.yizhuan.erban.treasurefairy.adapter.ExchangeDebrisAdapter
|
||||
import com.yizhuan.erban.treasurefairy.adapter.ExchangeSummonAdapter
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.erban.ui.utils.loadAvatar
|
||||
import com.yizhuan.xchat_android_core.treasurefairy.ExchangeGiftInfo
|
||||
import com.yizhuan.xchat_android_core.user.UserModel
|
||||
import com.yizhuan.xchat_android_core.utils.subAndReplaceDot
|
||||
import com.yizhuan.xchat_android_core.utils.toast
|
||||
|
||||
class ExchangeSummonFragment :
|
||||
BaseViewBindingFragment<TreasureFairyFragmentExchangeDebrisBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(): ExchangeSummonFragment {
|
||||
val args = Bundle()
|
||||
val fragment = ExchangeSummonFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private val viewModel: FairyViewModel by viewModels()
|
||||
private lateinit var rvDelegate: RVDelegate<ExchangeGiftInfo>
|
||||
private lateinit var exchangeSummonAdapter: ExchangeSummonAdapter
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun init() {
|
||||
exchangeSummonAdapter = ExchangeSummonAdapter()
|
||||
rvDelegate = RVDelegate.Builder<ExchangeGiftInfo>()
|
||||
.setAdapter(exchangeSummonAdapter)
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
.setEmptyView(
|
||||
EmptyViewHelper.createEmptyTextViewNoImage(
|
||||
context,
|
||||
getString(R.string.fairy_no_further_data_is_available)
|
||||
)
|
||||
)
|
||||
.setLayoutManager(GridLayoutManager(context, 2, LinearLayoutManager.VERTICAL, false))
|
||||
.build()
|
||||
viewModel.fairyCallInfoLiveData.observe(viewLifecycleOwner) {
|
||||
rvDelegate.setNewData(it)
|
||||
}
|
||||
viewModel.debrisExchangeListLiveData.observe(viewLifecycleOwner) {
|
||||
rvDelegate.setNewData(it)
|
||||
}
|
||||
exchangeSummonAdapter.setOnItemChildClickListener { _, _, position ->
|
||||
exchangeSummonAdapter.getItem(position)?.let {
|
||||
dialogManager.showTipsDialog("您將要兌換“${it.getPrizeName()}”", "兌換") {
|
||||
viewModel.debrisExchange(it.itemId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.getFairyCallList()
|
||||
viewModel.getMyFairyInfo()
|
||||
|
||||
viewModel.myFairyInfoLiveData.observe(viewLifecycleOwner) {
|
||||
it?.let {
|
||||
binding.tvDebrisNum.text = it.chipNum.toString()
|
||||
}
|
||||
}
|
||||
|
||||
UserModel.get().cacheLoginUserInfo?.let {
|
||||
binding.ivAvatar.loadAvatar(it.avatar)
|
||||
binding.tvNickname.text = it.nick.subAndReplaceDot(7)
|
||||
}
|
||||
|
||||
viewModel.debrisExchangeLiveData.observe(viewLifecycleOwner) {
|
||||
it?.getContentIfNotHandled()?.let {
|
||||
"兌換成功~".toast()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
BIN
app/src/main/res/drawable-xhdpi/treasure_exchange_bg.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/treasure_exchange_bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
24
app/src/main/res/layout/activity_home_banner.xml
Normal file
24
app/src/main/res/layout/activity_home_banner.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?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/ll_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.makeramen.roundedimageview.RoundedImageView
|
||||
android:id="@+id/iv_cover"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_cover"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:riv_corner_radius_bottom_left="8dp"
|
||||
app:riv_corner_radius_bottom_right="8dp"
|
||||
app:riv_corner_radius_top_left="8dp"
|
||||
app:riv_corner_radius_top_right="8dp" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -20,10 +20,10 @@
|
||||
android:id="@+id/title_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="bottom"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingTop="40dp"
|
||||
android:paddingBottom="@dimen/dp_12"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginBottom="@dimen/dp_12"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
@@ -31,39 +31,37 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/dp_32"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_36"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:layout_weight="1"
|
||||
android:drawablePadding="@dimen/dp_8"
|
||||
android:drawablePadding="@dimen/dp_6"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingStart="@dimen/dp_13"
|
||||
android:paddingEnd="0dp"
|
||||
android:text="@string/search_id_room"
|
||||
android:textColor="@color/color_B8B7C7"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:drawableStart="@drawable/ic_home_search"
|
||||
app:solid="@color/color_FAFBFC"
|
||||
app:corner="@dimen/dp_16"
|
||||
app:drawableStartCompat="@drawable/ic_home_search" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_my_room"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_home_my_room" />
|
||||
app:corner="@dimen/dp_16" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_ranking"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:layout_marginEnd="@dimen/dp_12"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_home_rank" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_my_room"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_home_my_room" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
@@ -104,19 +102,22 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.yizhuan.erban.ui.widget.viewpager.ScrollViewPager
|
||||
android:id="@+id/roll_view"
|
||||
<com.zhpan.bannerview.BannerViewPager
|
||||
android:id="@+id/banner"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:bvp_can_loop="true"
|
||||
app:bvp_auto_play="true"
|
||||
app:bvp_page_style="multi_page_scale"
|
||||
app:bvp_indicator_visibility="visible"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:layout_marginBottom="@dimen/dp_2"
|
||||
android:visibility="gone"
|
||||
app:rollviewpager_hint_mode="number"
|
||||
app:rollviewpager_hint_gravity="center"
|
||||
app:rollviewpager_hint_paddingBottom="8dp"
|
||||
app:rollviewpager_hint_color="@color/color_9168FA"
|
||||
tools:visibility="visible"
|
||||
app:bvp_indicator_checked_color="@color/color_9168FA"
|
||||
app:bvp_indicator_normal_color="@color/color_B3B3C3"
|
||||
app:bvp_indicator_radius="@dimen/dp_4"
|
||||
app:layout_constraintDimensionRatio="345:80"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
@@ -130,7 +131,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_25"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:layout_marginStart="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_12" />
|
||||
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
|
@@ -21,7 +21,9 @@
|
||||
android:id="@+id/mRecyclerRoom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:overScrollMode="never"
|
||||
android:scrollbars="none"
|
||||
app:spanCount="2"
|
||||
|
@@ -82,9 +82,12 @@
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:textColor="@color/color_1F1B4F"
|
||||
android:textSize="14sp"
|
||||
android:lines="1"
|
||||
android:ellipsize="end"
|
||||
android:maxEms="8"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_avatar"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg"
|
||||
tools:text="余生点唱歌曲" />
|
||||
tools:text="余生点唱歌曲京东卡数据接口的萨拉卡死" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_gender_age"
|
||||
|
@@ -16,7 +16,7 @@
|
||||
android:layout_height="0dp"
|
||||
android:background="@drawable/treasure_fairy_bg_exchange_debris_item"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="332:467"
|
||||
app:layout_constraintDimensionRatio="338:450"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
@@ -46,29 +46,18 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="我的可愛頭飾(1天)" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/mRecyclerView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="3dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_prize_name"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_exchange"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="25dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:background="@drawable/shape_3aeac7_to_fffebb_4dp"
|
||||
android:background="@drawable/treasure_exchange_bg"
|
||||
android:gravity="center"
|
||||
android:text="@string/fairy_convert"
|
||||
android:textColor="@color/color_1f5764"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/mRecyclerView" />
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_prize_name" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -0,0 +1,74 @@
|
||||
<?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="8dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@drawable/treasure_fairy_bg_exchange_debris_item"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="338:484"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_prize_icon"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.325"
|
||||
app:layout_constraintWidth_percent="0.40" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_prize_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintVertical_bias="0.60"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="我的可愛頭飾(1天)" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/mRecyclerView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_prize_name"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_exchange"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="25dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:background="@drawable/treasure_exchange_bg"
|
||||
android:gravity="center"
|
||||
android:text="@string/fairy_convert"
|
||||
android:textColor="@color/color_1f5764"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/mRecyclerView" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Reference in New Issue
Block a user