修复禅道上的bug

This commit is contained in:
wangyu 2026-01-12 18:54:13 +08:00
parent 7b737b69f6
commit cf736fc71b
30 changed files with 186 additions and 82 deletions

View File

@ -60,6 +60,7 @@ class SearchOptionEntity(
fun getTypeOptionList(): List<SearchOptionEntity> { fun getTypeOptionList(): List<SearchOptionEntity> {
val list = mutableListOf<SearchOptionEntity>() val list = mutableListOf<SearchOptionEntity>()
val typeList = mutableListOf<OptionItem>() val typeList = mutableListOf<OptionItem>()
typeList.add(OptionItem(0, "全部类型"))
UserConfigManager.getBidTypes().forEach { UserConfigManager.getBidTypes().forEach {
typeList.add(OptionItem(it.id.toInt(), it.name)) typeList.add(OptionItem(it.id.toInt(), it.name))
} }

View File

@ -359,11 +359,17 @@ object PopupDialog {
val optionList = SearchOptionEntity.getTypeOptionList()[0] val optionList = SearchOptionEntity.getTypeOptionList()[0]
if (typeList.isNotEmpty()) { if (typeList.isNotEmpty()) {
optionList.items.forEach { item -> if (typeList.size == optionList.items.size - 1) {
if (typeList.find { it.id == item.id } != null) { optionList.items[0].isChecked = true
item.isChecked = true } else {
optionList.items.forEach { item ->
if (typeList.find { it.id == item.id } != null) {
item.isChecked = true
}
} }
} }
} else {
optionList.items[0].isChecked = true
} }
adapter.setList(optionList.items) adapter.setList(optionList.items)
@ -377,13 +383,22 @@ object PopupDialog {
adapter.setOnItemClickListener { _, _, i -> adapter.setOnItemClickListener { _, _, i ->
val item = adapter.getItem(i) val item = adapter.getItem(i)
item.isChecked = !item.isChecked item.isChecked = !item.isChecked
if (item.id == 0) {
adapter.data.forEach { if (it.id != 0) it.isChecked = false }
} else {
adapter.data[0].isChecked = false
}
adapter.notifyDataSetChanged() adapter.notifyDataSetChanged()
} }
binding.btnReset.onClick { adapter.setList(SearchOptionEntity.getTypeOptionList()[0].items) } binding.btnReset.onClick {
val list = SearchOptionEntity.getTypeOptionList()[0].items
list[0].isChecked = true
adapter.setList(list)
}
binding.btnNext.onClick { binding.btnNext.onClick {
val list = adapter.data.filter { it.isChecked } val list = adapter.data.filter { it.isChecked && it.id != 0 }
callback.invoke(list) callback.invoke(list)
popWindow.dismiss() popWindow.dismiss()
} }

View File

@ -87,9 +87,13 @@ class PublishBidMessageFragment : BaseFragment<FragmentPublishBidMessageBinding,
binding.ivTopBg.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener { binding.ivTopBg.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() { override fun onGlobalLayout() {
val lp1 = binding.tvDesc.layoutParams as ConstraintLayout.LayoutParams val lp1 = binding.tvDesc.layoutParams as ConstraintLayout.LayoutParams
lp1.topMargin = (binding.ivTopBg.height * 100f / 314f).toInt() lp1.topMargin = (binding.ivTopBg.height * 100f / 268f).toInt()
binding.tvDesc.layoutParams = lp1 binding.tvDesc.layoutParams = lp1
val lp2 = binding.layoutContent.layoutParams as ConstraintLayout.LayoutParams
lp2.topMargin = (binding.ivTopBg.height * 168f / 268f).toInt()
binding.layoutContent.layoutParams = lp2
binding.layoutContent.setupWith(binding.layoutContainer).setFrameClearDrawable(binding.layoutContent.background).setBlurRadius(5f) binding.layoutContent.setupWith(binding.layoutContainer).setFrameClearDrawable(binding.layoutContent.background).setBlurRadius(5f)
binding.layoutContent.outlineProvider = ViewOutlineProvider.BACKGROUND binding.layoutContent.outlineProvider = ViewOutlineProvider.BACKGROUND
binding.layoutContent.setClipToOutline(true) binding.layoutContent.setClipToOutline(true)

View File

@ -82,6 +82,10 @@ class PublishGoodsMessageFragment: BaseFragment<FragmentPublishGoodsMessageBindi
lp1.topMargin = (binding.ivTopBg.height * 100f / 314f).toInt() lp1.topMargin = (binding.ivTopBg.height * 100f / 314f).toInt()
binding.tvDesc.layoutParams = lp1 binding.tvDesc.layoutParams = lp1
val lp2 = binding.layoutContent.layoutParams as ConstraintLayout.LayoutParams
lp2.topMargin = (binding.ivTopBg.height * 168f / 314f).toInt()
binding.layoutContent.layoutParams = lp2
binding.layoutContent.setupWith(binding.layoutContainer).setFrameClearDrawable(binding.layoutContent.background).setBlurRadius(5f) binding.layoutContent.setupWith(binding.layoutContainer).setFrameClearDrawable(binding.layoutContent.background).setBlurRadius(5f)
binding.layoutContent.outlineProvider = ViewOutlineProvider.BACKGROUND binding.layoutContent.outlineProvider = ViewOutlineProvider.BACKGROUND
binding.layoutContent.setClipToOutline(true) binding.layoutContent.setClipToOutline(true)

View File

@ -18,6 +18,7 @@ import com.example.base.extensions.visible
import com.example.base.ui.BaseFragment import com.example.base.ui.BaseFragment
class MyPublishFragment: BaseFragment<FragmentMyPublishBinding, MyPublishViewModel>() { class MyPublishFragment: BaseFragment<FragmentMyPublishBinding, MyPublishViewModel>() {
private val type by lazy { arguments?.getInt("type") ?: 1 }
private val tabText = listOf("招标信息", "合作信息") private val tabText = listOf("招标信息", "合作信息")
private val fragmentList by lazy { mutableListOf<Fragment>() } private val fragmentList by lazy { mutableListOf<Fragment>() }
@ -49,6 +50,8 @@ class MyPublishFragment: BaseFragment<FragmentMyPublishBinding, MyPublishViewMod
override fun initData() { override fun initData() {
super.initData() super.initData()
mViewModel.getCompanyInfo() mViewModel.getCompanyInfo()
binding.viewPager.setCurrentItem(if (type == 1) 0 else 1, false)
} }
override fun initListener() { override fun initListener() {

View File

@ -44,7 +44,7 @@ class HomeFragment : ListFragment<FragmentHomeBinding, HomeViewModel, BidItemEnt
override fun noDataClick() {} override fun noDataClick() {}
override fun bindAdapter() = BidAdapter() override fun bindAdapter() = BidAdapter(true)
private var item: BidItemEntity? = null private var item: BidItemEntity? = null

View File

@ -19,6 +19,7 @@ class HomeViewModel : ListViewModel<BidItemEntity>() {
val recommendLiveData = MutableLiveData<List<String>>() val recommendLiveData = MutableLiveData<List<String>>()
override suspend fun requestApi(params: ArrayMap<String, String>): Result<List<BidItemEntity>> { override suspend fun requestApi(params: ArrayMap<String, String>): Result<List<BidItemEntity>> {
params["sort"] = "123"
val response = ApiFactory.apiService.getRecommendList(params) val response = ApiFactory.apiService.getRecommendList(params)
if (response.status) { if (response.status) {
totalLiveData.postValue(response.data.total) totalLiveData.postValue(response.data.total)

View File

@ -1,14 +1,19 @@
package com.cheng.blzb.ui.fragment.home.zzdb package com.cheng.blzb.ui.fragment.home.zzdb
import android.annotation.SuppressLint
import android.text.TextUtils
import android.view.KeyEvent import android.view.KeyEvent
import android.view.View
import android.view.ViewOutlineProvider import android.view.ViewOutlineProvider
import android.view.ViewTreeObserver import android.view.ViewTreeObserver
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import com.cheng.blzb.R import com.cheng.blzb.R
import com.cheng.blzb.databinding.FragmentZzdbBinding import com.cheng.blzb.databinding.FragmentZzdbBinding
import com.cheng.blzb.impl.TextWatcherImpl
import com.cheng.blzb.ui.activity.PublicActivity import com.cheng.blzb.ui.activity.PublicActivity
import com.cheng.blzb.ui.fragment.home.zzdb.detail.ZZDBDetailFragment import com.cheng.blzb.ui.fragment.home.zzdb.detail.ZZDBDetailFragment
import com.example.base.extensions.getColor import com.example.base.extensions.getColor
import com.example.base.extensions.onClick
import com.example.base.ui.BaseFragment import com.example.base.ui.BaseFragment
import com.example.base.widget.EmptyView import com.example.base.widget.EmptyView
import com.example.base.widget.PageStatus import com.example.base.widget.PageStatus
@ -21,6 +26,13 @@ class ZZDBFragment: BaseFragment<FragmentZzdbBinding, ZZDBViewModel>() {
private var page = 1 private var page = 1
private val textWatcher = object : TextWatcherImpl() {
@SuppressLint("SetTextI18n")
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
binding.ivClearText.visibility = if (TextUtils.isEmpty(s)) View.INVISIBLE else View.VISIBLE
}
}
override fun initView() { override fun initView() {
super.initView() super.initView()
mTitleBar?.setBackgroundColor(getColor(R.color.windowBackground)) mTitleBar?.setBackgroundColor(getColor(R.color.windowBackground))
@ -58,6 +70,12 @@ class ZZDBFragment: BaseFragment<FragmentZzdbBinding, ZZDBViewModel>() {
mViewModel.getAgencyList(page, keyword) mViewModel.getAgencyList(page, keyword)
} }
binding.ivClearText.onClick {
binding.etSearch.setText("")
}
binding.etSearch.addTextChangedListener(textWatcher)
binding.etSearch.setOnEditorActionListener { _, _, event -> binding.etSearch.setOnEditorActionListener { _, _, event ->
if (event != null && event.keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_DOWN) { if (event != null && event.keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_DOWN) {
page = 1 page = 1
@ -97,4 +115,9 @@ class ZZDBFragment: BaseFragment<FragmentZzdbBinding, ZZDBViewModel>() {
} }
} }
} }
override fun onDestroyView() {
binding.etSearch.removeTextChangedListener(textWatcher)
super.onDestroyView()
}
} }

View File

@ -82,13 +82,11 @@ class MineFragment : BaseFragment<FragmentMineBinding, MineViewModel>() {
} }
} }
binding.tvVipName.onClick { binding.ivVipBg.onClick {
PublicActivity.start(requireContext(), VipFragment::class.java, Pair("origin", "center")) PublicActivity.start(requireContext(), VipFragment::class.java, Pair("origin", "center"))
EventReportManager.eventReport(EventConstants.JUMP_TO_MEMBER_RECHARGE, "center", "") EventReportManager.eventReport(EventConstants.JUMP_TO_MEMBER_RECHARGE, "center", "")
} }
binding.tvExpireTime.onClick { binding.tvVipName.performClick() }
binding.ivSetting.onClick { binding.ivSetting.onClick {
PublicActivity.start(requireContext(), SettingsFragment::class.java) PublicActivity.start(requireContext(), SettingsFragment::class.java)
EventReportManager.eventReport(EventConstants.JUMP_TO_SYSTEM_SETTING, "", "") EventReportManager.eventReport(EventConstants.JUMP_TO_SYSTEM_SETTING, "", "")

View File

@ -256,7 +256,7 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
} }
if (list.size <= 3) { if (list.size <= 3) {
binding.rvGoods.layoutManager = GridLayoutManager(requireContext(), 3) binding.rvGoods.layoutManager = GridLayoutManager(requireContext(), 3)
binding.rvGoods.addItemDecoration(GridSpaceItemDecoration(3, 0, DensityUtils.dp2px(12f))) binding.rvGoods.addItemDecoration(GridSpaceItemDecoration(3, 0, DensityUtils.dp2px(6f)))
} else { } else {
binding.rvGoods.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) binding.rvGoods.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false)
binding.rvGoods.addItemDecoration(SpacesItemDecoration(DensityUtils.dp2px(12f), RecyclerView.HORIZONTAL)) binding.rvGoods.addItemDecoration(SpacesItemDecoration(DensityUtils.dp2px(12f), RecyclerView.HORIZONTAL))
@ -485,9 +485,9 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
if (vipType == 0) { if (vipType == 0) {
payTypeCheckedRes = R.mipmap.ic_pay_checked1 payTypeCheckedRes = R.mipmap.ic_pay_checked1
binding.btnTab1.setTextColor(getColor(R.color.color_fff5e6)) binding.btnTab1.setTextColor(getColor(R.color.color_c5ffe1))
binding.btnTab1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_checked, 0, 0, 0) binding.btnTab1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_checked, 0, 0, 0)
binding.btnTab2.setTextColor(getColor(R.color.color_1b6648)) binding.btnTab2.setTextColor(getColor(R.color.color_8a7570))
binding.btnTab2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_default, 0, 0, 0) binding.btnTab2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_default, 0, 0, 0)
binding.ivTopBg.setImageResource(R.mipmap.ic_vip_top_bg1) binding.ivTopBg.setImageResource(R.mipmap.ic_vip_top_bg1)
@ -512,9 +512,9 @@ class VipFragment : BaseFragment<FragmentVipBinding, VipViewModel>() {
} else { } else {
payTypeCheckedRes = R.mipmap.ic_pay_checked2 payTypeCheckedRes = R.mipmap.ic_pay_checked2
binding.btnTab1.setTextColor(getColor(R.color.color_1b6648)) binding.btnTab1.setTextColor(getColor(R.color.color_8a7570))
binding.btnTab1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_default, 0, 0, 0) binding.btnTab1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_default, 0, 0, 0)
binding.btnTab2.setTextColor(getColor(R.color.color_fff5e6)) binding.btnTab2.setTextColor(getColor(R.color.color_c5ffe1))
binding.btnTab2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_checked, 0, 0, 0) binding.btnTab2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_vip_tab_checked, 0, 0, 0)
binding.ivTopBg.setImageResource(R.mipmap.ic_vip_top_bg2) binding.ivTopBg.setImageResource(R.mipmap.ic_vip_top_bg2)

View File

@ -40,7 +40,7 @@ class PushListFragment : ListFragment<FragmentPushListBinding, PushListViewModel
} }
} }
override fun bindAdapter() = BidAdapter() override fun bindAdapter() = BidAdapter(true)
override fun noDataClick() { override fun noDataClick() {
PublicActivity.start(requireContext(), SubscribeFragment::class.java) PublicActivity.start(requireContext(), SubscribeFragment::class.java)

View File

@ -12,6 +12,7 @@ import com.example.base.viewmodel.ListViewModel
class PushListViewModel: ListViewModel<BidItemEntity>() { class PushListViewModel: ListViewModel<BidItemEntity>() {
override suspend fun requestApi(params: ArrayMap<String, String>): Result<List<BidItemEntity>> { override suspend fun requestApi(params: ArrayMap<String, String>): Result<List<BidItemEntity>> {
params["sort"] = "123"
return ApiFactory.apiService.getRecommendList(params).toListResult() return ApiFactory.apiService.getRecommendList(params).toListResult()
} }

View File

@ -99,10 +99,8 @@ class AddSubscribeFragment : BaseFragment<FragmentAddSubscribeBinding, AddSubscr
} }
binding.tvNotificationState.onClick { binding.tvNotificationState.onClick {
if (!NotificationHelper.isNotificationEnabled(requireContext())) { PermissionUtils.checkNotificationPermission(requireActivity()) {
PermissionUtils.checkNotificationPermission(requireActivity()) { updatePushType()
updatePushType()
}
} }
} }

View File

@ -1,6 +1,7 @@
package com.cheng.blzb.ui.fragment.push.subscribe.source package com.cheng.blzb.ui.fragment.push.subscribe.source
import android.text.TextUtils import android.text.TextUtils
import android.view.View
import com.cheng.blzb.R import com.cheng.blzb.R
import com.cheng.blzb.bean.SourceEntity import com.cheng.blzb.bean.SourceEntity
import com.cheng.blzb.databinding.FragmentSourceSearchBinding import com.cheng.blzb.databinding.FragmentSourceSearchBinding
@ -32,6 +33,21 @@ class SourceSearchFragment: BaseFragment<FragmentSourceSearchBinding, SourceSear
private val resultEmptyView by lazy { EmptyView(requireContext()) } private val resultEmptyView by lazy { EmptyView(requireContext()) }
private val textWatcher = object : TextWatcherImpl() {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
super.onTextChanged(s, start, before, count)
binding.ivClearText.visibility = if (TextUtils.isEmpty(s)) View.GONE else View.VISIBLE
resultAdapter.setKeyword(s.toString())
if (!TextUtils.isEmpty(s?.trim())) {
mViewModel.search(s.toString())
binding.layoutResult.visible()
} else {
binding.layoutResult.gone()
}
}
}
override fun initView() { override fun initView() {
super.initView() super.initView()
val layoutManager = FlexboxLayoutManager(requireContext()) val layoutManager = FlexboxLayoutManager(requireContext())
@ -71,23 +87,16 @@ class SourceSearchFragment: BaseFragment<FragmentSourceSearchBinding, SourceSear
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
binding.etSearch.addTextChangedListener(textWatcher)
binding.ivClearText.onClick {
binding.etSearch.setText("")
}
binding.layoutResult.onClick { binding.layoutResult.onClick {
binding.layoutResult.gone() binding.layoutResult.gone()
} }
binding.etSearch.addTextChangedListener(object : TextWatcherImpl() {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
super.onTextChanged(s, start, before, count)
resultAdapter.setKeyword(s.toString())
if (!TextUtils.isEmpty(s?.trim())) {
mViewModel.search(s.toString())
binding.layoutResult.visible()
} else {
binding.layoutResult.gone()
}
}
})
recommendAdapter.setOnItemClickListener { _, _, i -> recommendAdapter.setOnItemClickListener { _, _, i ->
val item = recommendAdapter.getItem(i) val item = recommendAdapter.getItem(i)
if (selectedAdapter.data.size == 5) { if (selectedAdapter.data.size == 5) {
@ -163,6 +172,11 @@ class SourceSearchFragment: BaseFragment<FragmentSourceSearchBinding, SourceSear
} }
} }
override fun onDestroyView() {
binding.etSearch.removeTextChangedListener(textWatcher)
super.onDestroyView()
}
override fun onDestroy() { override fun onDestroy() {
RxBus.defaultInstance.post(SourceDataEvent(selectedAdapter.data)) RxBus.defaultInstance.post(SourceDataEvent(selectedAdapter.data))
super.onDestroy() super.onDestroy()

View File

@ -0,0 +1,39 @@
package com.cheng.blzb.ui.fragment.search
import android.graphics.Color
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.cheng.blzb.R
import com.cheng.blzb.bean.BidTypeEntity
import com.cheng.blzb.widget.CommonShapeView
import com.example.base.extensions.getColor
class HotTypeAdapter: BaseQuickAdapter<BidTypeEntity, BaseViewHolder>(R.layout.listitem_search_hot_type) {
override fun convert(holder: BaseViewHolder, item: BidTypeEntity) {
holder.setText(R.id.tv_name, item.name)
val tvTag = holder.getView<CommonShapeView>(R.id.tv_tag)
tvTag.text = "${holder.layoutPosition + 1}"
when(holder.layoutPosition) {
0 -> {
tvTag.setStartColor(Color.parseColor("#FFB505"))
tvTag.setEndColor(Color.parseColor("#FFCD1B"))
tvTag.setTextColor(Color.WHITE)
}
1 -> {
tvTag.setStartColor(Color.parseColor("#8AB7EE"))
tvTag.setEndColor(Color.parseColor("#A7C3EA"))
tvTag.setTextColor(Color.WHITE)
}
2 -> {
tvTag.setStartColor(Color.parseColor("#F77D48"))
tvTag.setEndColor(Color.parseColor("#F2976F"))
tvTag.setTextColor(Color.WHITE)
}
else -> {
tvTag.setStartColor(Color.TRANSPARENT)
tvTag.setEndColor(Color.TRANSPARENT)
tvTag.setTextColor(getColor(R.color.color_999999))
}
}
}
}

View File

@ -11,6 +11,7 @@ import com.cheng.blzb.databinding.FragmentSearchBinding
import com.cheng.blzb.impl.TextWatcherImpl import com.cheng.blzb.impl.TextWatcherImpl
import com.cheng.blzb.manager.DialogEnum import com.cheng.blzb.manager.DialogEnum
import com.cheng.blzb.manager.SearchHistoryManager import com.cheng.blzb.manager.SearchHistoryManager
import com.cheng.blzb.manager.UserConfigManager
import com.cheng.blzb.ui.activity.PublicActivity import com.cheng.blzb.ui.activity.PublicActivity
import com.cheng.blzb.ui.dialog.TipDialog import com.cheng.blzb.ui.dialog.TipDialog
import com.cheng.blzb.ui.fragment.merchant.MerchantFragment import com.cheng.blzb.ui.fragment.merchant.MerchantFragment
@ -31,6 +32,8 @@ class SearchFragment: BaseFragment<FragmentSearchBinding, SearchViewModel>() {
private val historyAdapter by lazy { HistoryKeywordAdapter() } private val historyAdapter by lazy { HistoryKeywordAdapter() }
private val recommendAdapter by lazy { RecommendKeywordAdapter() } private val recommendAdapter by lazy { RecommendKeywordAdapter() }
private val hotTypeAdapter by lazy { HotTypeAdapter() }
private val textWatcher = object : TextWatcherImpl() { private val textWatcher = object : TextWatcherImpl() {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
@ -55,6 +58,9 @@ class SearchFragment: BaseFragment<FragmentSearchBinding, SearchViewModel>() {
recommendLayoutManager.justifyContent = JustifyContent.FLEX_START recommendLayoutManager.justifyContent = JustifyContent.FLEX_START
binding.rvRecommend.layoutManager = recommendLayoutManager binding.rvRecommend.layoutManager = recommendLayoutManager
binding.rvRecommend.adapter = recommendAdapter binding.rvRecommend.adapter = recommendAdapter
binding.rvHot.adapter = hotTypeAdapter
hotTypeAdapter.setList(UserConfigManager.getBidTypes())
} }
override fun initData() { override fun initData() {
@ -132,6 +138,11 @@ class SearchFragment: BaseFragment<FragmentSearchBinding, SearchViewModel>() {
historyAdapter.setList(SearchHistoryManager.addHistory(item)) historyAdapter.setList(SearchHistoryManager.addHistory(item))
binding.layoutHistory.visible() binding.layoutHistory.visible()
} }
hotTypeAdapter.setOnItemClickListener { _, _, i ->
val item = hotTypeAdapter.getItem(i)
PublicActivity.start(requireContext(), SearchListFragment::class.java, Pair("typeId", item.id))
}
} }
override fun initObserve() { override fun initObserve() {

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white" />
</shape>

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="@dimen/dp_120"> <item android:top="@dimen/dp_100">
<color android:color="#FFE588"/> <color android:color="#FFE588"/>
</item> </item>
<item android:height="@dimen/dp_120"> <item android:height="@dimen/dp_100">
<shape> <shape>
<corners android:topRightRadius="@dimen/dp_60"/> <corners android:topRightRadius="@dimen/dp_50"/>
<gradient android:startColor="#FEF2C2" android:endColor="@color/transparent" android:angle="270"/> <gradient android:startColor="#FEF2C2" android:endColor="@color/transparent" android:angle="270"/>
</shape> </shape>
</item> </item>
<item android:top="@dimen/dp_60" android:bottom="@dimen/dp_48"> <item android:top="@dimen/dp_50" android:bottom="@dimen/dp_48">
<shape> <shape>
<solid android:color="@color/white" /> <solid android:color="@color/white" />
<corners <corners

View File

@ -146,19 +146,11 @@
android:textColor="@color/color_666666" android:textColor="@color/color_666666"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_2"
android:text="*"
android:textColor="@color/color_ff493c"
android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tv_area" android:id="@+id/tv_area"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_26" android:layout_marginStart="@dimen/dp_34"
android:drawableEnd="@mipmap/ic_arrow_dp16" android:drawableEnd="@mipmap/ic_arrow_dp16"
android:ellipsize="end" android:ellipsize="end"
android:hint="请选择" android:hint="请选择"
@ -185,19 +177,11 @@
android:textColor="@color/color_666666" android:textColor="@color/color_666666"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_2"
android:text="*"
android:textColor="@color/color_ff493c"
android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tv_source" android:id="@+id/tv_source"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_40" android:layout_marginStart="@dimen/dp_48"
android:drawableEnd="@mipmap/ic_arrow_dp16" android:drawableEnd="@mipmap/ic_arrow_dp16"
android:hint="请选择" android:hint="请选择"
android:maxLines="1" android:maxLines="1"

View File

@ -47,13 +47,13 @@
<TextView <TextView
android:id="@+id/tv_title" android:id="@+id/tv_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_60" android:layout_height="@dimen/dp_50"
android:drawableStart="@drawable/shape_dljz_tag" android:drawableStart="@drawable/shape_dljz_tag"
android:drawablePadding="@dimen/dp_10" android:drawablePadding="@dimen/dp_10"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="基本信息" android:text="基本信息"
android:textColor="#5A2200" android:textColor="#5A2200"
android:textSize="@dimen/sp_26" android:textSize="@dimen/sp_24"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
@ -318,7 +318,7 @@
android:layout_marginStart="@dimen/dp_37" android:layout_marginStart="@dimen/dp_37"
android:layout_marginTop="@dimen/dp_30" android:layout_marginTop="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_37" android:layout_marginEnd="@dimen/dp_37"
android:layout_marginBottom="@dimen/dp_24" android:layout_marginBottom="@dimen/dp_20"
android:src="@mipmap/ic_dljz_btn" android:src="@mipmap/ic_dljz_btn"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="h,903:168" app:layout_constraintDimensionRatio="h,903:168"

View File

@ -44,6 +44,7 @@
android:layout_marginStart="@dimen/dp_16" android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_3" android:layout_marginTop="@dimen/dp_3"
android:padding="@dimen/dp_2" android:padding="@dimen/dp_2"
android:background="@drawable/shape_avatar_bg"
android:src="@mipmap/ic_default_avatar" android:src="@mipmap/ic_default_avatar"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_setting" /> app:layout_constraintTop_toBottomOf="@id/iv_setting" />

View File

@ -118,7 +118,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="@dimen/dp_12" android:paddingStart="@dimen/dp_12"
android:paddingTop="@dimen/dp_16" android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_12"> android:paddingEnd="@dimen/dp_12">
<TextView <TextView
@ -356,7 +356,7 @@
android:id="@+id/tv_info_title" android:id="@+id/tv_info_title"
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_16" android:layout_marginTop="@dimen/dp_12"
android:drawablePadding="@dimen/dp_6" android:drawablePadding="@dimen/dp_6"
android:fontFamily="sans-serif-medium" android:fontFamily="sans-serif-medium"
android:text="项目信息" android:text="项目信息"
@ -450,8 +450,8 @@
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
android:id="@+id/et_info" android:id="@+id/et_info"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="@dimen/dp_150"
android:layout_marginTop="@dimen/dp_15" android:layout_marginTop="@dimen/dp_12"
android:background="@null" android:background="@null"
android:gravity="start|top" android:gravity="start|top"
android:hint="输入的信息越全,查看的人越多哟~" android:hint="输入的信息越全,查看的人越多哟~"
@ -459,7 +459,6 @@
android:textColor="@color/color_1a1a1a" android:textColor="@color/color_1a1a1a"
android:textColorHint="@color/color_bcbcbc" android:textColorHint="@color/color_bcbcbc"
android:textSize="@dimen/sp_14" android:textSize="@dimen/sp_14"
app:layout_constraintDimensionRatio="h,319:200"
app:layout_constraintTop_toBottomOf="@id/tv_image_limit_tip" /> app:layout_constraintTop_toBottomOf="@id/tv_image_limit_tip" />
<TextView <TextView

View File

@ -20,8 +20,8 @@
android:id="@+id/iv_top_bg" android:id="@+id/iv_top_bg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:src="@mipmap/ic_publish_bid_top_bg" android:src="@mipmap/ic_publish_goods_top_bg"
app:layout_constraintDimensionRatio="h,1125:804" app:layout_constraintDimensionRatio="h,1125:942"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
@ -118,7 +118,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="@dimen/dp_12" android:paddingStart="@dimen/dp_12"
android:paddingTop="@dimen/dp_16" android:paddingTop="@dimen/dp_12"
android:paddingEnd="@dimen/dp_12"> android:paddingEnd="@dimen/dp_12">
<TextView <TextView
@ -401,13 +401,13 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="@dimen/dp_12" android:paddingStart="@dimen/dp_12"
android:paddingEnd="@dimen/dp_12" android:paddingEnd="@dimen/dp_12"
android:paddingTop="@dimen/dp_12"
android:paddingBottom="@dimen/dp_16"> android:paddingBottom="@dimen/dp_16">
<TextView <TextView
android:id="@+id/tv_explain_title" android:id="@+id/tv_explain_title"
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_16"
android:drawablePadding="@dimen/dp_6" android:drawablePadding="@dimen/dp_6"
android:fontFamily="sans-serif-medium" android:fontFamily="sans-serif-medium"
android:text="说明" android:text="说明"
@ -429,8 +429,8 @@
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
android:id="@+id/et_explain" android:id="@+id/et_explain"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="@dimen/dp_150"
android:layout_marginTop="@dimen/dp_15" android:layout_marginTop="@dimen/dp_12"
android:background="@null" android:background="@null"
android:gravity="start|top" android:gravity="start|top"
android:hint="输入的信息越全,查看的人越多哟~" android:hint="输入的信息越全,查看的人越多哟~"
@ -438,7 +438,6 @@
android:textColor="@color/color_1a1a1a" android:textColor="@color/color_1a1a1a"
android:textColorHint="@color/color_bcbcbc" android:textColorHint="@color/color_bcbcbc"
android:textSize="@dimen/sp_14" android:textSize="@dimen/sp_14"
app:layout_constraintDimensionRatio="h,319:200"
app:layout_constraintTop_toBottomOf="@id/tv_explain_title" /> app:layout_constraintTop_toBottomOf="@id/tv_explain_title" />
<TextView <TextView

View File

@ -101,8 +101,8 @@
android:layout_marginStart="@dimen/dp_9" android:layout_marginStart="@dimen/dp_9"
android:layout_marginTop="@dimen/dp_13" android:layout_marginTop="@dimen/dp_13"
android:layout_marginEnd="@dimen/dp_9" android:layout_marginEnd="@dimen/dp_9"
app:hl_cornerRadius="@dimen/dp_10"
android:visibility="gone" android:visibility="gone"
app:hl_cornerRadius="@dimen/dp_10"
app:hl_layoutBackground="@color/white" app:hl_layoutBackground="@color/white"
app:hl_shadowColor="@color/color_shadow" app:hl_shadowColor="@color/color_shadow"
app:hl_shadowLimit="@dimen/dp_7" app:hl_shadowLimit="@dimen/dp_7"
@ -163,8 +163,8 @@
app:hl_layoutBackground="@color/white" app:hl_layoutBackground="@color/white"
app:hl_shadowColor="@color/color_shadow" app:hl_shadowColor="@color/color_shadow"
app:hl_shadowLimit="@dimen/dp_7" app:hl_shadowLimit="@dimen/dp_7"
app:layout_goneMarginTop="@dimen/dp_13" app:layout_constraintTop_toBottomOf="@id/layout_history"
app:layout_constraintTop_toBottomOf="@id/layout_history"> app:layout_goneMarginTop="@dimen/dp_13">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -248,7 +248,9 @@
android:id="@+id/rv_hot" android:id="@+id/rv_hot"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_2"
android:layout_marginTop="@dimen/dp_6" android:layout_marginTop="@dimen/dp_6"
android:layout_marginEnd="@dimen/dp_2"
android:orientation="vertical" android:orientation="vertical"
android:overScrollMode="never" android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"

View File

@ -39,7 +39,7 @@
android:drawableEnd="@mipmap/ic_option_arrow_down" android:drawableEnd="@mipmap/ic_option_arrow_down"
android:drawablePadding="@dimen/dp_4" android:drawablePadding="@dimen/dp_4"
android:gravity="center" android:gravity="center"
android:text="全国" android:text="地区"
android:textColor="@color/color_1a1a1a" android:textColor="@color/color_1a1a1a"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />

View File

@ -50,7 +50,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:drawableStart="@drawable/shape_vip_tab_checked" android:drawableStart="@drawable/shape_vip_tab_checked"
android:text="个人会员" android:text="个人会员"
android:textColor="@color/color_fff5e6" android:textColor="@color/color_c5ffe1"
android:textSize="@dimen/sp_16" android:textSize="@dimen/sp_16"
app:csb_drawablePosition="left" app:csb_drawablePosition="left"
app:csb_fillColor="@color/transparent" app:csb_fillColor="@color/transparent"
@ -63,7 +63,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:drawableStart="@drawable/shape_vip_tab_default" android:drawableStart="@drawable/shape_vip_tab_default"
android:text="企业会员" android:text="企业会员"
android:textColor="@color/color_1b6648" android:textColor="@color/color_8a7570"
android:textSize="@dimen/sp_16" android:textSize="@dimen/sp_16"
app:csb_drawablePosition="left" app:csb_drawablePosition="left"
app:csb_fillColor="@color/transparent" app:csb_fillColor="@color/transparent"
@ -189,15 +189,15 @@
android:layout_marginEnd="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_16"
android:background="@mipmap/ic_vip_pay_bg1" android:background="@mipmap/ic_vip_pay_bg1"
android:paddingStart="@dimen/dp_8" android:paddingStart="@dimen/dp_8"
android:paddingTop="@dimen/dp_42"
android:paddingEnd="@dimen/dp_8" android:paddingEnd="@dimen/dp_8"
android:paddingBottom="@dimen/dp_30" android:paddingBottom="@dimen/dp_20"
app:layout_constraintTop_toBottomOf="@id/layout_countdown"> app:layout_constraintTop_toBottomOf="@id/layout_countdown">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_seat" android:id="@+id/layout_seat"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_42"
android:background="@drawable/shape_vip_seat_bg" android:background="@drawable/shape_vip_seat_bg"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
@ -333,7 +333,7 @@
android:orientation="vertical" android:orientation="vertical"
android:visibility="gone" android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/layout_seat" app:layout_constraintTop_toBottomOf="@id/layout_seat"
app:layout_goneMarginTop="@dimen/dp_16"> app:layout_goneMarginTop="@dimen/dp_42">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_coupon" android:id="@+id/layout_coupon"
@ -410,6 +410,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_54" android:layout_height="@dimen/dp_54"
android:layout_marginTop="@dimen/dp_12" android:layout_marginTop="@dimen/dp_12"
app:layout_goneMarginTop="@dimen/dp_16"
android:drawableStart="@mipmap/ic_wx_pay" android:drawableStart="@mipmap/ic_wx_pay"
android:drawableEnd="@mipmap/ic_pay_default" android:drawableEnd="@mipmap/ic_pay_default"
android:drawablePadding="@dimen/dp_10" android:drawablePadding="@dimen/dp_10"
@ -430,6 +431,7 @@
android:drawablePadding="@dimen/dp_10" android:drawablePadding="@dimen/dp_10"
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingStart="@dimen/dp_12" android:paddingStart="@dimen/dp_12"
app:layout_goneMarginTop="@dimen/dp_16"
android:paddingEnd="@dimen/dp_12" android:paddingEnd="@dimen/dp_12"
android:text="支付宝支付" android:text="支付宝支付"
android:textColor="@color/color_fdf7f0" android:textColor="@color/color_fdf7f0"

View File

@ -34,7 +34,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="205dp" android:layout_marginTop="205dp"
android:background="@drawable/shape_trans_top_cor20" android:background="@drawable/shape_trans_top_line_cor20"
android:paddingTop="@dimen/dp_13" android:paddingTop="@dimen/dp_13"
app:blurOverlayColor="#4DFFFFFF" app:blurOverlayColor="#4DFFFFFF"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">

View File

@ -38,6 +38,7 @@
android:text="2.5万次" android:text="2.5万次"
android:textColor="#0A204D" android:textColor="#0A204D"
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

View File

@ -99,8 +99,7 @@
<color name="color_7e4024">#7E4024</color> <color name="color_7e4024">#7E4024</color>
<color name="color_f11e1e">#F11E1E</color> <color name="color_f11e1e">#F11E1E</color>
<color name="color_797069">#797069</color> <color name="color_797069">#797069</color>
<color name="color_fff5e6">#FFF5E6</color> <color name="color_8a7570">#8A7570</color>
<color name="color_1b6648">#1B6648</color>
<color name="color_fffaef">#FFFAEF</color> <color name="color_fffaef">#FFFAEF</color>
<color name="color_fffaee">#FFFAEE</color> <color name="color_fffaee">#FFFAEE</color>
<color name="color_fdf7f0">#FDF7F0</color> <color name="color_fdf7f0">#FDF7F0</color>