bug修改

This commit is contained in:
wangyu 2026-01-15 18:07:36 +08:00
parent bcc2ce551d
commit 2b792be289
21 changed files with 377 additions and 294 deletions

View File

@ -33,4 +33,7 @@ class ConfigEntity {
@SerializedName("client.service.phone") //客服电话
var servicePhoneList: List<String> = emptyList()
@SerializedName("client.pay.type") //全局支付方式
var payType: List<String> = emptyList()
}

View File

@ -30,5 +30,6 @@ data class UserEntity(
val vip_expire_time: String,
val vip_name: String,
val weixinAppOpenId: String,
val ip_area: String
val ip_area: String,
val is_show_crop_add: Boolean
) : Serializable

View File

@ -84,6 +84,7 @@ object UserConfigManager {
saveShareEntity(data.config!!.wxShareEntity)
saveAdSwitch(data.config!!.adSwitch)
saveServicePhoneList(data.config!!.servicePhoneList)
savePayType(data.config!!.payType)
}
} catch (e : Exception) {
e.printStackTrace()
@ -213,6 +214,21 @@ object UserConfigManager {
return emptyList()
}
/**
* 全局支付方式
*/
private fun savePayType(list: List<String>) {
MMKVUtils.put("pay_type", Gson().toJson(list))
}
fun getPayType(): List<String> {
val str = MMKVUtils.getString("pay_type")
if (!TextUtils.isEmpty(str)) {
return Gson().fromJson(str, object : TypeToken<List<String>>() {}.type)
}
return emptyList()
}
/**
* 搜索排序
*/

View File

@ -340,8 +340,8 @@ interface ApiService {
/**
* 供应商搜索
*/
@GET("/api/user/goods/search")
suspend fun searchSupplier(@QueryMap map: Map<String, String>): HttpBaseResult<HttpListResult<MerchantGoodsEntity>>
@GET("/api/user/goods/searchks")
suspend fun searchGoods(@QueryMap map: Map<String, String>): HttpBaseResult<HttpListResult<MerchantGoodsEntity>>
/**
* 浏览历史

View File

@ -28,6 +28,7 @@ import com.example.base.extensions.onClick
import com.example.base.extensions.toast
import com.example.base.extensions.visible
import com.example.base.ui.BaseFragment
import com.example.base.utils.AppUtils
import com.example.base.utils.ClipboardUtils
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
@ -88,7 +89,7 @@ class BidDetailFragment: BaseFragment<FragmentBidDetailBinding, BidDetailViewMod
val shareEntity = WxShareEntity()
shareEntity.title = detail!!.origin_title
shareEntity.link = UserConfigManager.getShareEntity()?.link ?: detail!!.share_url
shareEntity.content = UserConfigManager.getShareEntity()?.content ?: ""
shareEntity.content = UserConfigManager.getShareEntity()?.content ?: detail!!.origin_title
ShareManager.shareUrl(requireActivity(), SHARE_MEDIA.WEIXIN, shareEntity) {}
}

View File

@ -38,14 +38,14 @@ class MyBidAdapter : LoadMoreAdapter<BidDetailEntity>(R.layout.listitem_my_bid)
"2" -> {
holder.setText(R.id.tv_status, "已发布")
holder.setTextColor(R.id.tv_status, getColor(R.color.color_e3fae7))
holder.setTextColor(R.id.tv_status, getColor(R.color.color_3bbf0f))
holder.setBackgroundResource(R.id.tv_status, R.drawable.shape_publish_status_bg2)
holder.getView<TextView>(R.id.tv_status).setCompoundDrawablesWithIntrinsicBounds(R.mipmap.ic_publish_status2, 0, 0, 0)
}
"3" -> {
holder.setText(R.id.tv_status, "已驳回")
holder.setTextColor(R.id.tv_status, getColor(R.color.color_ffede7))
holder.setTextColor(R.id.tv_status, getColor(R.color.color_ff592b))
holder.setBackgroundResource(R.id.tv_status, R.drawable.shape_publish_status_bg3)
holder.getView<TextView>(R.id.tv_status).setCompoundDrawablesWithIntrinsicBounds(R.mipmap.ic_publish_status3, 0, 0, 0)

View File

@ -45,6 +45,7 @@ import com.huantansheng.easyphotos.EasyPhotos
import com.huantansheng.easyphotos.callback.SelectCallback
import com.huantansheng.easyphotos.models.album.entity.Photo
import okhttp3.RequestBody.Companion.toRequestBody
import org.jetbrains.anko.sdk27.listeners.onTouch
import java.io.File
class PublishBidMessageFragment : BaseFragment<FragmentPublishBidMessageBinding, PublishBidMessageViewModel>() {
@ -148,13 +149,19 @@ class PublishBidMessageFragment : BaseFragment<FragmentPublishBidMessageBinding,
contactsAdapter.setList(it)
binding.rvContacts.visible()
binding.tvContacts.gone()
if (contactsAdapter.data.size == 5) {
binding.ivAddContacts.gone()
}
}
f.show(childFragmentManager, "")
}
binding.tvContacts.onClick {
binding.ivAddContacts.performClick()
}
binding.rvContacts.onTouch { _, _ ->
binding.ivAddContacts.performClick()
true
}
binding.rgInfoType.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rb1 -> {

View File

@ -39,14 +39,14 @@ class MyGoodsAdapter: BaseQuickAdapter<MerchantGoodsEntity, BaseViewHolder>(R.la
"2" -> {
holder.setText(R.id.tv_status, "已发布")
holder.setTextColor(R.id.tv_status, getColor(R.color.color_e3fae7))
holder.setTextColor(R.id.tv_status, getColor(R.color.color_3bbf0f))
holder.setBackgroundResource(R.id.tv_status, R.drawable.shape_publish_status_bg2)
holder.getView<TextView>(R.id.tv_status).setCompoundDrawablesWithIntrinsicBounds(R.mipmap.ic_publish_status2, 0, 0, 0)
}
"3" -> {
holder.setText(R.id.tv_status, "已驳回")
holder.setTextColor(R.id.tv_status, getColor(R.color.color_ffede7))
holder.setTextColor(R.id.tv_status, getColor(R.color.color_ff592b))
holder.setBackgroundResource(R.id.tv_status, R.drawable.shape_publish_status_bg3)
holder.getView<TextView>(R.id.tv_status).setCompoundDrawablesWithIntrinsicBounds(R.mipmap.ic_publish_status3, 0, 0, 0)

View File

@ -41,6 +41,7 @@ import com.huantansheng.easyphotos.EasyPhotos
import com.huantansheng.easyphotos.callback.SelectCallback
import com.huantansheng.easyphotos.models.album.entity.Photo
import okhttp3.RequestBody.Companion.toRequestBody
import org.jetbrains.anko.sdk27.listeners.onTouch
class PublishGoodsMessageFragment: BaseFragment<FragmentPublishGoodsMessageBinding, PublishGoodsMessageViewModel>() {
private val from by lazy { arguments?.getInt("from") ?: 0 }
@ -137,13 +138,19 @@ class PublishGoodsMessageFragment: BaseFragment<FragmentPublishGoodsMessageBindi
contactsAdapter.setList(it)
binding.rvContacts.visible()
binding.tvContacts.gone()
if (contactsAdapter.data.size == 5) {
binding.ivAddContacts.gone()
}
}
f.show(childFragmentManager, "")
}
binding.tvContacts.onClick {
binding.ivAddContacts.performClick()
}
binding.rvContacts.onTouch { _, _ ->
binding.ivAddContacts.performClick()
true
}
binding.tvPrice1.onClick {
binding.rbPrice1.isChecked = true
}

View File

@ -148,7 +148,7 @@ class HomeFragment : ListFragment<FragmentHomeBinding, HomeViewModel, BidItemEnt
val total = it.toInt()
SpanUtils.with(binding.tvUpdateCount)
.append("已更新")
.append(if (total < 10000) "$total" else "${DecimalFormat("0.#").format(total / 10000f)}")
.append(if (total < 10000) "$total" else "${DecimalFormat("0.00").format(total / 10000f)}")
.setForegroundColor(getColor(R.color.color_ff2222))
.append("")
.create()

View File

@ -12,6 +12,7 @@ import com.cheng.blzb.databinding.FragmentZzdbBinding
import com.cheng.blzb.impl.TextWatcherImpl
import com.cheng.blzb.ui.activity.PublicActivity
import com.cheng.blzb.ui.fragment.home.zzdb.detail.ZZDBDetailFragment
import com.cheng.blzb.utils.KeyboardUtils
import com.example.base.extensions.getColor
import com.example.base.extensions.onClick
import com.example.base.ui.BaseFragment
@ -81,6 +82,7 @@ class ZZDBFragment: BaseFragment<FragmentZzdbBinding, ZZDBViewModel>() {
page = 1
keyword = binding.etSearch.text.toString().trim()
mViewModel.getAgencyList(page, keyword)
KeyboardUtils.hideSoftInput(requireActivity())
return@setOnEditorActionListener true
}
false

View File

@ -20,6 +20,7 @@ import com.cheng.blzb.manager.SearchHistoryManager
import com.cheng.blzb.ui.base.BasePageAdapter
import com.cheng.blzb.ui.dialog.SelectAreaDialog
import com.cheng.blzb.ui.fragment.merchant.list.MerchantGoodsListFragment
import com.cheng.blzb.utils.KeyboardUtils
import com.example.base.extensions.onClick
import com.example.base.ui.BaseFragment
@ -33,14 +34,7 @@ class MerchantFragment : BaseFragment<FragmentMerchantBinding, MerchantViewModel
private val tabText = listOf("全部", "服务", "产品", "其他")
private val fragmentList by lazy { mutableListOf<Fragment>() }
private val pageAdapter by lazy {
BasePageAdapter(
childFragmentManager,
tabText,
fragmentList,
FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
)
}
private val pageAdapter by lazy { BasePageAdapter(childFragmentManager, tabText, fragmentList) }
private var city: AreaEntity? = AreaEntity(0, name = "全国")
@ -104,6 +98,7 @@ class MerchantFragment : BaseFragment<FragmentMerchantBinding, MerchantViewModel
fragment.setKeyword(keyword)
}
SearchHistoryManager.addHistory(keyword)
KeyboardUtils.hideSoftInput(requireActivity())
return@setOnEditorActionListener true
}
false

View File

@ -46,7 +46,7 @@ class MerchantGoodsDetailFragment : BaseFragment<FragmentMerchantGoodsDetailBind
binding.ivTopBg.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
(binding.viewPager.layoutParams as ConstraintLayout.LayoutParams).topMargin = binding.mTitleBar.height + DensityUtils.dp2px(10f)
(binding.nestedScrollView.layoutParams as ConstraintLayout.LayoutParams).topMargin = (binding.viewPager.height * 276f / 343f).toInt()
(binding.layoutContent.layoutParams as ConstraintLayout.LayoutParams).topMargin = (binding.viewPager.height * 276f / 343f).toInt()
binding.layoutContent.setupWith(binding.root).setFrameClearDrawable(binding.layoutContent.background).setBlurRadius(5f)
binding.ivTopBg.viewTreeObserver.removeOnGlobalLayoutListener(this)
}

View File

@ -12,7 +12,7 @@ import com.example.base.viewmodel.ListViewModel
class MerchantGoodsListViewModel: ListViewModel<MerchantGoodsEntity>() {
override suspend fun requestApi(params: ArrayMap<String, String>): Result<List<MerchantGoodsEntity>> {
return ApiFactory.apiService.searchSupplier(params).toListResult()
return ApiFactory.apiService.searchGoods(params).toListResult()
}
val authLiveData = MutableLiveData<UserAuthEntity>()

View File

@ -3,6 +3,7 @@ package com.cheng.blzb.ui.fragment.mine
import android.annotation.SuppressLint
import android.text.TextUtils
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import coil.load
import coil.transform.CircleCropTransformation
import com.cheng.blzb.R
@ -227,6 +228,10 @@ class MineFragment : BaseFragment<FragmentMineBinding, MineViewModel>() {
binding.tvExpireTime.setTextColor(getColor(R.color.color_bcac8e))
binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow1, 0)
binding.ivVipBg.setImageResource(R.mipmap.ic_mine_vip_bg1)
val vipBgLp = binding.ivVipBg.layoutParams as ConstraintLayout.LayoutParams
vipBgLp.dimensionRatio = "h,1029:342"
binding.ivVipBg.layoutParams = vipBgLp
} else if (userInfo?.vip == "2") {
isEnterprise = false
@ -237,6 +242,10 @@ class MineFragment : BaseFragment<FragmentMineBinding, MineViewModel>() {
binding.tvExpireTime.setTextColor(getColor(R.color.color_bcac8e))
binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow1, 0)
binding.ivVipBg.setImageResource(R.mipmap.ic_mine_vip_bg1)
val vipBgLp = binding.ivVipBg.layoutParams as ConstraintLayout.LayoutParams
vipBgLp.dimensionRatio = "h,1029:342"
binding.ivVipBg.layoutParams = vipBgLp
} else if (userInfo?.vip == "3") {
isEnterprise = false
@ -247,6 +256,10 @@ class MineFragment : BaseFragment<FragmentMineBinding, MineViewModel>() {
binding.tvExpireTime.setTextColor(getColor(R.color.color_bcac8e))
binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow1, 0)
binding.ivVipBg.setImageResource(R.mipmap.ic_mine_vip_bg1)
val vipBgLp = binding.ivVipBg.layoutParams as ConstraintLayout.LayoutParams
vipBgLp.dimensionRatio = "h,1029:342"
binding.ivVipBg.layoutParams = vipBgLp
} else if (userInfo?.vip == "12") {
isEnterprise = true
@ -257,6 +270,10 @@ class MineFragment : BaseFragment<FragmentMineBinding, MineViewModel>() {
binding.tvExpireTime.setTextColor(getColor(R.color.color_a6c8ba))
binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow2, 0)
binding.ivVipBg.setImageResource(R.mipmap.ic_mine_vip_bg2)
val vipBgLp = binding.ivVipBg.layoutParams as ConstraintLayout.LayoutParams
vipBgLp.dimensionRatio = "h,1029:309"
binding.ivVipBg.layoutParams = vipBgLp
} else if (userInfo?.vip == "11") {
isEnterprise = true
@ -267,10 +284,15 @@ class MineFragment : BaseFragment<FragmentMineBinding, MineViewModel>() {
binding.tvExpireTime.setTextColor(getColor(R.color.color_a6c8ba))
binding.tvExpireTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.ic_mine_arrow2, 0)
binding.ivVipBg.setBackgroundResource(R.mipmap.ic_mine_vip_bg2)
val vipBgLp = binding.ivVipBg.layoutParams as ConstraintLayout.LayoutParams
vipBgLp.dimensionRatio = "h,1029:309"
binding.ivVipBg.layoutParams = vipBgLp
}
binding.tvUsername.text = userInfo?.name
binding.tvUserId.text = "ID:${userInfo?.user_id}"
binding.btnLogin.visibility = if (LoginManager.isLogin()) View.GONE else View.VISIBLE
binding.tvSeatManage.visibility = if (isEnterprise) View.VISIBLE else View.GONE
binding.tvSeatManage.visibility = if (isEnterprise || userInfo!!.is_show_crop_add) View.VISIBLE else View.GONE
binding.tvShare.visibility = if (UserConfigManager.getShareEntity() != null) View.VISIBLE else View.GONE
}
}

View File

@ -33,6 +33,7 @@ import com.example.base.utils.DensityUtils
import com.google.gson.JsonArray
import com.google.gson.JsonObject
import okhttp3.RequestBody.Companion.toRequestBody
import org.jetbrains.anko.sdk27.listeners.onTouch
class CompanyAuthFragment : BaseFragment<FragmentCompanyAuthBinding, CompanyAuthViewModel>() {
private var companyDetail: CompanyEntity? = null
@ -118,13 +119,19 @@ class CompanyAuthFragment : BaseFragment<FragmentCompanyAuthBinding, CompanyAuth
contactsAdapter.setList(it)
binding.rvContacts.visible()
binding.tvContacts.gone()
if (contactsAdapter.data.size == 5) {
binding.ivAddContacts.gone()
}
}
f.show(childFragmentManager, "")
}
binding.tvContacts.onClick {
binding.ivAddContacts.performClick()
}
binding.rvContacts.onTouch { _, _ ->
binding.ivAddContacts.performClick()
true
}
binding.btnNext.onClick {
val name = binding.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) {
@ -249,8 +256,9 @@ class CompanyAuthFragment : BaseFragment<FragmentCompanyAuthBinding, CompanyAuth
binding.ivDeleteImage.visible()
contactsAdapter.setList(detail.contact)
if (contactsAdapter.data.size == 5) {
binding.ivAddContacts.gone()
if (contactsAdapter.data.isNotEmpty()) {
binding.rvContacts.visible()
binding.tvContacts.gone()
}
}
}

View File

@ -6,6 +6,7 @@ import android.text.TextUtils
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
@ -127,7 +128,10 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
seatCountLimit = goodsEntity!!.member_limit.toInt()
if (seatCount < seatCountLimit) seatCount = seatCountLimit
binding.tvSeatPrice.text = "+¥${DecimalFormat("0.##").format(goodsEntity!!.member_price.toFloat())}"
binding.tvSeatOriginPrice.text = "(原¥${DecimalFormat("0.##").format(goodsEntity!!.origin_member_price.toFloat())})"
SpanUtils.with(binding.tvSeatOriginPrice)
.append("(原¥${DecimalFormat("0.##").format(goodsEntity!!.origin_member_price.toFloat())})")
.setStrikethrough()
.create()
setSeatCount()
seatPrice = (seatCount - seatCountLimit) * (goodsEntity?.member_price?.toFloat() ?: 0f)
@ -275,7 +279,10 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
seatCountLimit = goodsEntity!!.member_limit.toInt()
if (seatCount < seatCountLimit) seatCount = seatCountLimit
binding.tvSeatPrice.text = "+¥${DecimalFormat("0.##").format(goodsEntity!!.member_price.toFloat())}"
binding.tvSeatOriginPrice.text = "(原¥${DecimalFormat("0.##").format(goodsEntity!!.origin_member_price.toFloat())})"
SpanUtils.with(binding.tvSeatOriginPrice)
.append("(原¥${DecimalFormat("0.##").format(goodsEntity!!.origin_member_price.toFloat())})")
.setStrikethrough()
.create()
setSeatCount()
seatPrice = (seatCount - seatCountLimit) * (goodsEntity?.member_price?.toFloat() ?: 0f)
@ -383,29 +390,30 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
private fun releasePayType() {
val list = goodsEntity?.pay_type?.split(",")?.map { it.trim() }?.toList()
if (list?.find { it == "alipay" } != null) {
binding.tvAliPay.visible()
} else {
binding.tvAliPay.gone()
}
if (list?.find { it == "weixin" } != null) {
val globalPayType = UserConfigManager.getPayType()
if (list?.find { it == "weixin" } != null && globalPayType.find { it == "weixin" } != null) {
binding.tvWxPay.visible()
} else {
binding.tvWxPay.gone()
}
if (list?.find { it == "bank" } != null) {
if (list?.find { it == "alipay" } != null && globalPayType.find { it == "alipay" } != null) {
binding.tvAliPay.visible()
} else {
binding.tvAliPay.gone()
}
if (list?.find { it == "bank" } != null && globalPayType.find { it == "bank" } != null) {
binding.tvBankPay.visible()
} else {
binding.tvBankPay.gone()
}
if (goodsEntity?.pay_type!!.startsWith("weixin")) {
if (goodsEntity?.pay_type!!.startsWith("weixin") && binding.tvWxPay.isVisible) {
payType = 0
}
if (goodsEntity?.pay_type!!.startsWith("alipay")) {
if (goodsEntity?.pay_type!!.startsWith("alipay") && binding.tvAliPay.isVisible) {
payType = 1
}
if (goodsEntity?.pay_type!!.startsWith("bank")) {
if (goodsEntity?.pay_type!!.startsWith("bank") && binding.tvBankPay.isVisible) {
payType = 2
}
@ -505,6 +513,10 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
binding.tvHour.setBackgroundResource(R.drawable.shape_vip_countdown_bg1)
binding.tvMinute.setBackgroundResource(R.drawable.shape_vip_countdown_bg1)
binding.tvSecond.setBackgroundResource(R.drawable.shape_vip_countdown_bg1)
binding.tvDay.setTextColor(getColor(R.color.color_7e4024))
binding.tvHour.setTextColor(getColor(R.color.color_7e4024))
binding.tvMinute.setTextColor(getColor(R.color.color_7e4024))
binding.tvSecond.setTextColor(getColor(R.color.color_7e4024))
binding.tvPrice.setTextColor(getColor(R.color.color_fff4e6))
binding.tvInvoice.setTextColor(getColor(R.color.color_ecc9ae))
@ -539,6 +551,10 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
binding.tvHour.setBackgroundResource(R.drawable.shape_vip_countdown_bg2)
binding.tvMinute.setBackgroundResource(R.drawable.shape_vip_countdown_bg2)
binding.tvSecond.setBackgroundResource(R.drawable.shape_vip_countdown_bg2)
binding.tvDay.setTextColor(getColor(R.color.color_09321d))
binding.tvHour.setTextColor(getColor(R.color.color_09321d))
binding.tvMinute.setTextColor(getColor(R.color.color_09321d))
binding.tvSecond.setTextColor(getColor(R.color.color_09321d))
binding.tvPrice.setTextColor(getColor(R.color.color_f6fbd0))
binding.tvInvoice.setTextColor(getColor(R.color.color_7ead99))

View File

@ -87,6 +87,7 @@ class SearchListFragment : ListFragment<FragmentSearchListBinding, SearchListVie
SearchHistoryManager.addHistory(keyword)
mViewModel.params["query"] = keyword
firstLoad()
KeyboardUtils.hideSoftInput(requireActivity())
return@setOnEditorActionListener true
}
false

View File

@ -5,6 +5,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:fillViewport="true"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_top_bg"
android:layout_width="match_parent"
@ -36,22 +45,14 @@
app:csb_fillColor="#80000000"
app:csb_strokeColor="@color/white"
app:csb_strokeWidth="0.5dp"
app:layout_constraintBottom_toTopOf="@id/nestedScrollView"
app:layout_constraintBottom_toTopOf="@id/layout_content"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.core.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="276dp"
android:fillViewport="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="@id/viewPager">
<eightbitlab.com.blurview.BlurView
android:id="@+id/layout_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="276dp"
android:background="@drawable/shape_trans_top_line_cor20"
app:blurOverlayColor="#4DFFFFFF">
@ -276,6 +277,9 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</eightbitlab.com.blurview.BlurView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
<com.example.base.widget.TitleBar

View File

@ -232,26 +232,25 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_2"
android:text="开通会员"
android:textColor="@color/color_fbcd8c"
android:textSize="@dimen/sp_16"
app:layout_constraintBottom_toTopOf="@id/tv_expire_time"
app:layout_constraintTop_toTopOf="@id/iv_vip_bg"
android:layout_marginTop="@dimen/dp_28"
app:layout_constraintStart_toStartOf="@id/iv_vip_bg" />
<TextView
android:id="@+id/tv_expire_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableEnd="@mipmap/ic_mine_arrow1"
android:gravity="center"
android:text="开通会员,查看海量商机"
android:layout_marginTop="@dimen/dp_2"
android:textColor="@color/color_bcac8e"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="@id/iv_vip_bg"
app:layout_constraintStart_toStartOf="@id/tv_vip_name"
app:layout_constraintTop_toTopOf="@id/iv_vip_bg" />
app:layout_constraintTop_toBottomOf="@id/tv_vip_name"
app:layout_constraintStart_toStartOf="@id/tv_vip_name" />
<FrameLayout
android:id="@+id/layout_menus"

View File

@ -97,6 +97,7 @@
<color name="color_c5ffe1">#C5FFE1</color>
<color name="color_a6c8ba">#A6C8BA</color>
<color name="color_7e4024">#7E4024</color>
<color name="color_09321d">#09321D</color>
<color name="color_f11e1e">#F11E1E</color>
<color name="color_797069">#797069</color>
<color name="color_8a7570">#8A7570</color>