修复禅道上的bug,2.8.0/280

This commit is contained in:
wangyu 2026-03-12 14:42:01 +08:00
parent 15c2543958
commit fe08ad0680
17 changed files with 175 additions and 97 deletions

View File

@ -19,6 +19,7 @@ data class HotWordEntity(
val status: String = "", val status: String = "",
val type: String = "", val type: String = "",
val weight: String = "", val weight: String = "",
var isChecked: Boolean = false var isChecked: Boolean = false,
var anim: Boolean = true
): Serializable ): Serializable
} }

View File

@ -1,4 +1,4 @@
package com.cheng.blzb.event package com.cheng.blzb.event
class HomeRefreshEvent { class HomeRefreshEvent(val refreshData: Boolean = true) {
} }

View File

@ -71,6 +71,7 @@ class SelectCouponDialog : DialogFragment() {
binding.mRecyclerView.adapter = mAdapter binding.mRecyclerView.adapter = mAdapter
mEmptyView.setBtnVisible(false) mEmptyView.setBtnVisible(false)
mEmptyView.setNoDataLogo(R.mipmap.ic_empty_seat)
mAdapter.setEmptyView(mEmptyView) mAdapter.setEmptyView(mEmptyView)
mAdapter.setOnItemClickListener { _, _, i -> mAdapter.setOnItemClickListener { _, _, i ->

View File

@ -1,5 +1,6 @@
package com.cheng.blzb.ui.fragment.guide.adapter package com.cheng.blzb.ui.fragment.guide.adapter
import android.animation.ObjectAnimator
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color
@ -8,6 +9,7 @@ import android.view.ViewGroup
import android.view.animation.RotateAnimation import android.view.animation.RotateAnimation
import android.widget.ImageView import android.widget.ImageView
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.animation.addListener
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.cheng.blzb.R import com.cheng.blzb.R
@ -15,14 +17,13 @@ import com.cheng.blzb.bean.HotWordEntity
import com.cheng.blzb.common.Constants import com.cheng.blzb.common.Constants
import com.example.base.decoration.GridSpaceItemDecoration import com.example.base.decoration.GridSpaceItemDecoration
import com.example.base.extensions.onClick import com.example.base.extensions.onClick
import com.example.base.extensions.visible
import com.example.base.utils.DensityUtils import com.example.base.utils.DensityUtils
import com.example.base.utils.SpanUtils import com.example.base.utils.SpanUtils
import kotlin.math.ceil
import kotlin.random.Random import kotlin.random.Random
class GuideItem3Adapter(val context: Context): RecyclerView.Adapter<BaseViewHolder>() { class GuideItem3Adapter(val context: Context): RecyclerView.Adapter<BaseViewHolder>() {
val data: MutableList<HotWordEntity.Child> = mutableListOf() val data: MutableList<HotWordEntity.Child> = mutableListOf()
private var showAnim = true
private var mOnKeywordClickListener: ((keyword: HotWordEntity.Child) -> Unit)? = null private var mOnKeywordClickListener: ((keyword: HotWordEntity.Child) -> Unit)? = null
@ -61,6 +62,20 @@ class GuideItem3Adapter(val context: Context): RecyclerView.Adapter<BaseViewHold
startRotate(view) startRotate(view)
keywordAdapter.setList(getKeywordList(item)) keywordAdapter.setList(getKeywordList(item))
} }
if ((position == 0 || position == 2) && item.anim) {
val transX = if (position == 0) -DensityUtils.dp2px(50f).toFloat() else DensityUtils.dp2px(50f).toFloat()
val anim = ObjectAnimator.ofFloat(holder.itemView, "translationX", transX, 0f)
anim.duration = 1000
anim.startDelay = 1000
anim.addListener(onStart = {
holder.itemView.visible()
})
anim.start()
item.anim = false
} else {
holder.itemView.visible()
}
} }
override fun getItemCount(): Int { override fun getItemCount(): Int {

View File

@ -0,0 +1,46 @@
package com.cheng.blzb.ui.fragment.guide.adapter
import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.TextView
import com.cheng.blzb.R
import com.cheng.blzb.bean.AreaEntity
import com.cheng.blzb.bean.HotWordEntity
import com.cheng.blzb.common.Constants
class GuideItem5IndustryAdapter1(val context: Context, val data: List<HotWordEntity.Child>): BaseAdapter() {
override fun getCount(): Int {
return data.size
}
override fun getItem(position: Int): HotWordEntity.Child {
return data[position]
}
override fun getItemId(position: Int): Long {
return position.toLong()
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val view: View
val viewHolder: ViewHolder
if (convertView == null) {
view = View.inflate(context, R.layout.listitem_guide_item5_industry, null)
viewHolder = ViewHolder(view)
view.tag = viewHolder
} else {
view = convertView
viewHolder = convertView.tag as ViewHolder
}
viewHolder.tvName.typeface = Constants.ysbth
viewHolder.tvName.text = getItem(position).name
return view
}
inner class ViewHolder(val view: View) {
val tvName: TextView = view.findViewById(R.id.tv_name)
}
}

View File

@ -46,13 +46,13 @@ class GuideItem3Fragment : BaseFragment<FragmentGuideItem3Binding, GuideViewMode
binding.vpKeywords.setPageTransformer(ZoomOutPageTransformer()) binding.vpKeywords.setPageTransformer(ZoomOutPageTransformer())
binding.rvSelectedKeywords.adapter = selectedAdapter binding.rvSelectedKeywords.adapter = selectedAdapter
binding.rvSelectedKeywords.addItemDecoration(GridSpaceItemDecoration(3, DensityUtils.dp2px(12f), DensityUtils.dp2px(12f))) binding.rvSelectedKeywords.addItemDecoration(GridSpaceItemDecoration(3, 0, DensityUtils.dp2px(12f)))
} }
override fun onLazyLoad() { override fun onLazyLoad() {
super.onLazyLoad() super.onLazyLoad()
mAdapter.setList(GuideFragment.hotWordList) mAdapter.setList(GuideFragment.hotWordList)
binding.vpKeywords.setCurrentItem(1000 * mAdapter.data.size, false) binding.vpKeywords.setCurrentItem(1, false)
startAnim() startAnim()
} }
@ -60,17 +60,17 @@ class GuideItem3Fragment : BaseFragment<FragmentGuideItem3Binding, GuideViewMode
super.initListener() super.initListener()
mAdapter.setOnKeywordClickListener { keyword -> mAdapter.setOnKeywordClickListener { keyword ->
if (!canClick) return@setOnKeywordClickListener
if (!keyword.isChecked && selectedAdapter.data.size == 5) { if (!keyword.isChecked && selectedAdapter.data.size == 5) {
toast("最多添加5个关键词") toast("最多添加5个关键词")
return@setOnKeywordClickListener return@setOnKeywordClickListener
} }
if (selectedAdapter.data.find { it.name == keyword.name } != null) {
if (selectedAdapter.data.find { it.name == keyword.name } == null) { toast("关键词已存在")
return@setOnKeywordClickListener
}
selectedAdapter.addData(keyword) selectedAdapter.addData(keyword)
binding.tvNodata.gone() binding.tvNodata.gone()
} }
}
binding.btnAddKeyword.onClick { binding.btnAddKeyword.onClick {
val keyword = binding.etKeyword.text.toString().trim() val keyword = binding.etKeyword.text.toString().trim()
@ -79,6 +79,10 @@ class GuideItem3Fragment : BaseFragment<FragmentGuideItem3Binding, GuideViewMode
toast("最多添加5个关键词") toast("最多添加5个关键词")
return@onClick return@onClick
} }
if (selectedAdapter.data.find { it.name == keyword } != null) {
toast("关键词已存在")
return@onClick
}
selectedAdapter.addData(HotWordEntity.Child(name = keyword, isChecked = true)) selectedAdapter.addData(HotWordEntity.Child(name = keyword, isChecked = true))
binding.etKeyword.setText(" ") binding.etKeyword.setText(" ")
binding.tvNodata.gone() binding.tvNodata.gone()

View File

@ -18,8 +18,9 @@ import com.cheng.blzb.ui.activity.PublicActivity
import com.cheng.blzb.ui.fragment.guide.GuideFragment import com.cheng.blzb.ui.fragment.guide.GuideFragment
import com.cheng.blzb.ui.fragment.guide.GuideViewModel import com.cheng.blzb.ui.fragment.guide.GuideViewModel
import com.cheng.blzb.ui.fragment.guide.adapter.GuideItem5CityAdapter import com.cheng.blzb.ui.fragment.guide.adapter.GuideItem5CityAdapter
import com.cheng.blzb.ui.fragment.guide.adapter.GuideItem5IndustryAdapter import com.cheng.blzb.ui.fragment.guide.adapter.GuideItem5IndustryAdapter1
import com.cheng.blzb.ui.fragment.guide.vip.GuideVipFragment import com.cheng.blzb.ui.fragment.guide.vip.GuideVipFragment
import com.efs.sdk.memleaksdk.monitor.internal.bi
import com.example.base.extensions.visible import com.example.base.extensions.visible
import com.example.base.ui.BaseFragment import com.example.base.ui.BaseFragment
import com.example.base.utils.DensityUtils import com.example.base.utils.DensityUtils
@ -27,32 +28,24 @@ import com.example.base.utils.ScreenUtils
import com.google.gson.Gson import com.google.gson.Gson
import com.yy.mobile.rollingtextview.CharOrder import com.yy.mobile.rollingtextview.CharOrder
import com.yy.mobile.rollingtextview.strategy.Strategy import com.yy.mobile.rollingtextview.strategy.Strategy
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.disposables.Disposable
import org.jetbrains.anko.sdk27.listeners.onTouch import org.jetbrains.anko.sdk27.listeners.onTouch
import org.libpag.PAGFile import org.libpag.PAGFile
import java.util.concurrent.TimeUnit
class GuideItem5Fragment : BaseFragment<FragmentGuideItem5Binding, GuideViewModel>() { class GuideItem5Fragment : BaseFragment<FragmentGuideItem5Binding, GuideViewModel>() {
private val cityAdapter by lazy { GuideItem5CityAdapter(requireContext(), cityList) } private val cityAdapter by lazy { GuideItem5CityAdapter(requireContext(), cityList) }
private val industryAdapter by lazy { GuideItem5IndustryAdapter(requireContext(), hotWordChildList) } private val industryAdapter by lazy { GuideItem5IndustryAdapter1(requireContext(), hotWordChildList) }
private val hotWordChildList = mutableListOf<HotWordEntity.Child>() private val hotWordChildList = mutableListOf<HotWordEntity.Child>()
private val cityList = mutableListOf<AreaEntity>() private val cityList = mutableListOf<AreaEntity>()
private var totalInfo: GuideTotalBidEntity? = null private var totalInfo: GuideTotalBidEntity? = null
private var industryTask: Disposable? = null
override fun initView() { override fun initView() {
super.initView() super.initView()
binding.tvTitle.typeface = Constants.pmzdbt binding.tvTitle.typeface = Constants.pmzdbt
binding.tvBidCount.typeface = Constants.ysbth binding.tvBidCount.typeface = Constants.ysbth
binding.tvUnit.typeface = Constants.ysbth binding.tvUnit.typeface = Constants.ysbth
binding.rvIndustry.adapter = industryAdapter
} }
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
@ -61,11 +54,10 @@ class GuideItem5Fragment : BaseFragment<FragmentGuideItem5Binding, GuideViewMode
totalInfo = GuideFragment.totalInfo totalInfo = GuideFragment.totalInfo
cityList.addAll(GuideFragment.cityList) cityList.addAll(GuideFragment.cityList)
binding.viewFlipper.adapter = cityAdapter binding.vfCity.adapter = cityAdapter
hotWordChildList.addAll(GuideFragment.hotWordList) hotWordChildList.addAll(GuideFragment.hotWordList)
industryAdapter.notifyDataSetChanged() binding.vfIndustry.adapter = industryAdapter
startIndustryTask()
startAnim() startAnim()
} }
@ -112,6 +104,8 @@ class GuideItem5Fragment : BaseFragment<FragmentGuideItem5Binding, GuideViewMode
binding.layoutInfo.visible() binding.layoutInfo.visible()
}, onEnd = { }, onEnd = {
startNumAnim() startNumAnim()
binding.vfCity.startFlipping()
binding.vfIndustry.startFlipping()
}) })
val progressMaskAnim = ValueAnimator.ofFloat(0f, 1f) val progressMaskAnim = ValueAnimator.ofFloat(0f, 1f)
@ -230,30 +224,4 @@ class GuideItem5Fragment : BaseFragment<FragmentGuideItem5Binding, GuideViewMode
} }
}, 8700) }, 8700)
} }
private fun startIndustryTask() {
if (industryAdapter.data.isEmpty() || industryTask != null) return
industryTask = Observable.interval(300, 9, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
if (activity != null) {
binding.rvIndustry.scrollBy(3, 0)
}
}
}
private fun stopIndustryTask() {
industryTask?.dispose()
industryTask = null
}
override fun onStart() {
super.onStart()
startIndustryTask()
}
override fun onStop() {
super.onStop()
stopIndustryTask()
}
} }

View File

@ -1,5 +1,6 @@
package com.cheng.blzb.ui.fragment.home package com.cheng.blzb.ui.fragment.home
import android.annotation.SuppressLint
import android.view.MotionEvent import android.view.MotionEvent
import android.view.ViewGroup import android.view.ViewGroup
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
@ -357,10 +358,11 @@ class HomeFragment : ListFragment<FragmentHomeBinding, HomeViewModel, BidItemEnt
} }
val homeRefreshEvent = RxBus.defaultInstance.toObservable(HomeRefreshEvent::class.java).subscribe { val homeRefreshEvent = RxBus.defaultInstance.toObservable(HomeRefreshEvent::class.java).subscribe {
firstLoad() if (it.refreshData) firstLoad()
if (activity != null && UserConfigManager.userInfo?.vip != "3") { if (activity != null && UserConfigManager.userInfo?.vip != "3") {
if (UserConfigManager.isShowGoodsCouponAnim()) { if (UserConfigManager.isShowGoodsCouponAnim()) {
mViewModel.getGoodsList() mViewModel.getGoodsList()
stopCouponActivityAnim(true)
} else { } else {
stopCouponActivityAnim(false) stopCouponActivityAnim(false)
mViewModel.couponActivityList() mViewModel.couponActivityList()
@ -381,6 +383,8 @@ class HomeFragment : ListFragment<FragmentHomeBinding, HomeViewModel, BidItemEnt
} }
f.show(childFragmentManager, GoodsPromotionDialog::class.java.simpleName) f.show(childFragmentManager, GoodsPromotionDialog::class.java.simpleName)
UserConfigManager.hideGoodsCouponAnim() UserConfigManager.hideGoodsCouponAnim()
RxBus.defaultInstance.post(HomeRefreshEvent(false))
} }
private fun showRedPacketActivityDialog() { private fun showRedPacketActivityDialog() {
@ -441,8 +445,10 @@ class HomeFragment : ListFragment<FragmentHomeBinding, HomeViewModel, BidItemEnt
} }
} }
@SuppressLint("DefaultLocale")
private fun startCountdown() { private fun startCountdown() {
stopCountdown() stopCountdown()
try {
countdownTask = RxCountDown.countdown(DateUtils.getDayEndTime() - System.currentTimeMillis() / 1000).subscribe { countdownTask = RxCountDown.countdown(DateUtils.getDayEndTime() - System.currentTimeMillis() / 1000).subscribe {
if (it == 0L) { if (it == 0L) {
startCountdown() startCountdown()
@ -452,6 +458,9 @@ class HomeFragment : ListFragment<FragmentHomeBinding, HomeViewModel, BidItemEnt
binding.tvCountdown.text = String.format("%02d:%02d:%02d", hours, minutes % 60, it % 60) binding.tvCountdown.text = String.format("%02d:%02d:%02d", hours, minutes % 60, it % 60)
} }
} }
} catch (e: Exception) {
L.d(e)
}
} }
private fun stopCountdown() { private fun stopCountdown() {

View File

@ -23,6 +23,7 @@ import com.cheng.blzb.bean.VipGoodsEntity
import com.cheng.blzb.common.Constants import com.cheng.blzb.common.Constants
import com.cheng.blzb.common.EventConstants import com.cheng.blzb.common.EventConstants
import com.cheng.blzb.databinding.FragmentVipBinding import com.cheng.blzb.databinding.FragmentVipBinding
import com.cheng.blzb.event.HomeRefreshEvent
import com.cheng.blzb.event.PayStatusEnum import com.cheng.blzb.event.PayStatusEnum
import com.cheng.blzb.event.PayStatusEvent import com.cheng.blzb.event.PayStatusEvent
import com.cheng.blzb.event.PaySuccessEvent import com.cheng.blzb.event.PaySuccessEvent
@ -224,7 +225,7 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
} }
} }
binding.tvCoupon.onClick { binding.layoutRedpacket.onClick {
if (goodsEntity == null) { if (goodsEntity == null) {
toast("请先选择要开通的会员套餐") toast("请先选择要开通的会员套餐")
return@onClick return@onClick
@ -758,6 +759,8 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
val f = GoodsPromotionDialog.newInstance(goodsAdapter.data) val f = GoodsPromotionDialog.newInstance(goodsAdapter.data)
f.show(childFragmentManager, GoodsPromotionDialog::class.java.simpleName) f.show(childFragmentManager, GoodsPromotionDialog::class.java.simpleName)
UserConfigManager.hideGoodsCouponAnim() UserConfigManager.hideGoodsCouponAnim()
RxBus.defaultInstance.post(HomeRefreshEvent(false))
} }
private fun showRedPacketActivityDialog(isEnter: Boolean) { private fun showRedPacketActivityDialog(isEnter: Boolean) {

View File

@ -91,9 +91,9 @@
android:id="@+id/layout_desc" android:id="@+id/layout_desc"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_26" android:layout_height="@dimen/dp_26"
android:layout_marginStart="@dimen/dp_32" android:layout_marginStart="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_32" android:layout_marginEnd="@dimen/dp_30"
android:layout_marginBottom="@dimen/dp_30" android:layout_marginBottom="@dimen/dp_25"
android:background="@drawable/shape_guide_item1_desc_bg" android:background="@drawable/shape_guide_item1_desc_bg"
android:gravity="center" android:gravity="center"
android:orientation="horizontal" android:orientation="horizontal"
@ -106,7 +106,7 @@
android:fontFamily="sans-serif-medium" android:fontFamily="sans-serif-medium"
android:text="· 实时更新" android:text="· 实时更新"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_12" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -114,7 +114,7 @@
android:layout_marginStart="@dimen/dp_12" android:layout_marginStart="@dimen/dp_12"
android:text="全国数据收集,海量信息采集" android:text="全国数据收集,海量信息采集"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_12" />
</LinearLayout> </LinearLayout>
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView

View File

@ -122,13 +122,15 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_selected_keywords" android:id="@+id/rv_selected_keywords"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_76" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16" android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_45" android:layout_marginTop="@dimen/dp_32"
android:layout_marginEnd="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_20" android:layout_marginBottom="@dimen/dp_20"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHeight_min="@dimen/dp_90"
app:layout_constraintTop_toBottomOf="@id/et_keyword" app:layout_constraintTop_toBottomOf="@id/et_keyword"
app:spanCount="3" app:spanCount="3"
tool:itemCount="5" tool:itemCount="5"

View File

@ -14,6 +14,13 @@
android:src="@mipmap/ic_guide_item5_bg" android:src="@mipmap/ic_guide_item5_bg"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:src="@mipmap/ic_guide_item5_top"
app:layout_constraintDimensionRatio="h,1425:234"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_star1" android:id="@+id/iv_star1"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -120,16 +127,16 @@
android:layout_width="@dimen/dp_40" android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_40" android:layout_height="@dimen/dp_40"
android:src="@mipmap/ic_guide_item5_search" android:src="@mipmap/ic_guide_item5_search"
app:layout_constraintBottom_toBottomOf="@id/viewFlipper" app:layout_constraintBottom_toBottomOf="@id/vf_city"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/viewFlipper" /> app:layout_constraintTop_toTopOf="@id/vf_city" />
<AdapterViewFlipper <AdapterViewFlipper
android:id="@+id/viewFlipper" android:id="@+id/vf_city"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_50" android:layout_height="@dimen/dp_50"
android:autoStart="true" android:autoStart="false"
android:flipInterval="500" android:flipInterval="650"
android:inAnimation="@animator/anim_vf_in" android:inAnimation="@animator/anim_vf_in"
android:loopViews="true" android:loopViews="true"
android:outAnimation="@animator/anim_vf_out" android:outAnimation="@animator/anim_vf_out"
@ -146,7 +153,7 @@
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="40sp" android:textSize="40sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/rv_industry" app:layout_constraintBottom_toTopOf="@id/vf_industry"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/layout_city" app:layout_constraintTop_toBottomOf="@id/layout_city"
@ -171,6 +178,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_25" android:layout_marginBottom="@dimen/dp_25"
android:orientation="horizontal" android:orientation="horizontal"
android:visibility="gone"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -178,6 +186,21 @@
app:layout_constraintTop_toBottomOf="@id/tv_bid_count" app:layout_constraintTop_toBottomOf="@id/tv_bid_count"
tools:listitem="@layout/listitem_guide_item5_industry" /> tools:listitem="@layout/listitem_guide_item5_industry" />
<AdapterViewFlipper
android:id="@+id/vf_industry"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_40"
android:layout_marginBottom="@dimen/dp_25"
android:autoStart="false"
android:flipInterval="650"
android:inAnimation="@animator/anim_vf_in"
android:loopViews="true"
android:outAnimation="@animator/anim_vf_out"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_bid_count" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<ProgressBar <ProgressBar

View File

@ -163,8 +163,8 @@
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_total_info_icon1" android:id="@+id/iv_total_info_icon1"
android:layout_width="wrap_content" android:layout_width="86dp"
android:layout_height="wrap_content" android:layout_height="70dp"
android:src="@mipmap/ic_guide_vip_total_info_icon1" android:src="@mipmap/ic_guide_vip_total_info_icon1"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@ -175,7 +175,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:text="0条" android:text="0条"
android:textSize="@dimen/sp_20" android:textSize="@dimen/sp_18"
app:gradient_endColor="@color/color_6dd9f2" app:gradient_endColor="@color/color_6dd9f2"
app:gradient_startColor="@color/white" app:gradient_startColor="@color/white"
app:layout_constraintBottom_toTopOf="@id/tv_total_info_title1" app:layout_constraintBottom_toTopOf="@id/tv_total_info_title1"
@ -208,8 +208,8 @@
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_total_info_icon2" android:id="@+id/iv_total_info_icon2"
android:layout_width="wrap_content" android:layout_width="86dp"
android:layout_height="wrap_content" android:layout_height="70dp"
android:src="@mipmap/ic_guide_vip_total_info_icon2" android:src="@mipmap/ic_guide_vip_total_info_icon2"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@ -220,7 +220,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:text="0条" android:text="0条"
android:textSize="@dimen/sp_20" android:textSize="@dimen/sp_18"
app:gradient_endColor="@color/color_6dd9f2" app:gradient_endColor="@color/color_6dd9f2"
app:gradient_startColor="@color/white" app:gradient_startColor="@color/white"
app:layout_constraintBottom_toTopOf="@id/tv_total_info_title2" app:layout_constraintBottom_toTopOf="@id/tv_total_info_title2"
@ -253,8 +253,8 @@
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_total_info_icon3" android:id="@+id/iv_total_info_icon3"
android:layout_width="wrap_content" android:layout_width="86dp"
android:layout_height="wrap_content" android:layout_height="70dp"
android:src="@mipmap/ic_guide_vip_total_info_icon3" android:src="@mipmap/ic_guide_vip_total_info_icon3"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@ -263,9 +263,9 @@
android:id="@+id/tv_total_info_count3" android:id="@+id/tv_total_info_count3"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_18"
android:text="0亿元" android:text="0亿元"
android:textSize="@dimen/sp_20" android:textSize="@dimen/sp_18"
app:gradient_endColor="@color/color_6dd9f2" app:gradient_endColor="@color/color_6dd9f2"
app:gradient_startColor="@color/white" app:gradient_startColor="@color/white"
app:layout_constraintBottom_toTopOf="@id/tv_total_info_title3" app:layout_constraintBottom_toTopOf="@id/tv_total_info_title3"
@ -298,8 +298,8 @@
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_total_info_icon4" android:id="@+id/iv_total_info_icon4"
android:layout_width="wrap_content" android:layout_width="86dp"
android:layout_height="wrap_content" android:layout_height="70dp"
android:src="@mipmap/ic_guide_vip_total_info_icon4" android:src="@mipmap/ic_guide_vip_total_info_icon4"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@ -310,7 +310,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:text="0条" android:text="0条"
android:textSize="@dimen/sp_20" android:textSize="@dimen/sp_18"
app:gradient_endColor="@color/color_6dd9f2" app:gradient_endColor="@color/color_6dd9f2"
app:gradient_startColor="@color/white" app:gradient_startColor="@color/white"
app:layout_constraintBottom_toTopOf="@id/tv_total_info_title4" app:layout_constraintBottom_toTopOf="@id/tv_total_info_title4"

View File

@ -324,11 +324,10 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_coupon_redpacket" android:id="@+id/layout_redpacket"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_44" android:layout_height="@dimen/dp_44"
android:layout_marginTop="@dimen/dp_12" android:layout_marginTop="@dimen/dp_12"
android:layout_marginEnd="@dimen/dp_12"
android:background="@drawable/shape_vip_coupon_bg" android:background="@drawable/shape_vip_coupon_bg"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@id/layout_seat" app:layout_constraintTop_toBottomOf="@id/layout_seat"
@ -377,7 +376,7 @@
android:text="微信支付" android:text="微信支付"
android:textColor="@color/color_fdf7f0" android:textColor="@color/color_fdf7f0"
android:textSize="@dimen/sp_15" android:textSize="@dimen/sp_15"
app:layout_constraintTop_toBottomOf="@id/layout_coupon_redpacket" /> app:layout_constraintTop_toBottomOf="@id/layout_redpacket" />
<TextView <TextView
android:id="@+id/tv_ali_pay" android:id="@+id/tv_ali_pay"

View File

@ -1,16 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tool="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@mipmap/ic_guide_item3_keyword_bg1" android:background="@mipmap/ic_guide_item3_keyword_bg1"
xmlns:app="http://schemas.android.com/apk/res-auto" android:visibility="invisible"
xmlns:tool="http://schemas.android.com/tools"> tool:visibility="visible">
<LinearLayout <LinearLayout
android:id="@+id/layout_base_info" android:id="@+id/layout_base_info"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_16"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -21,7 +23,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="行业交易规模" android:text="行业交易规模"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_12" /> android:textSize="@dimen/sp_11" />
<TextView <TextView
android:id="@+id/tv_amount" android:id="@+id/tv_amount"

View File

@ -3,13 +3,15 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_32" android:layout_height="@dimen/dp_32"
android:layout_marginTop="@dimen/dp_12"
android:background="@mipmap/ic_guide_item3_checked" android:background="@mipmap/ic_guide_item3_checked"
android:padding="@dimen/dp_8"> android:paddingStart="@dimen/dp_8"
android:paddingEnd="@dimen/dp_8">
<TextView <TextView
android:id="@+id/tv_name" android:id="@+id/tv_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:ellipsize="marquee" android:ellipsize="marquee"
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
@ -21,13 +23,16 @@
android:text="数字电路" android:text="数字电路"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_delete" app:layout_constraintEnd_toStartOf="@id/iv_delete"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_delete" android:id="@+id/iv_delete"
android:layout_width="@dimen/dp_14" android:layout_width="@dimen/dp_18"
android:layout_height="@dimen/dp_14" android:layout_height="@dimen/dp_18"
android:padding="@dimen/dp_2"
android:src="@mipmap/ic_delete_subscribe_keyword" android:src="@mipmap/ic_delete_subscribe_keyword"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB