Commit 772867a7 authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :小象省钱
[实现方案] :显示折扣
parent 23386ae3
......@@ -41,6 +41,7 @@
//底部
<string name="shop">商城</string>
<string name="box">盲盒</string>
<string name="bottom_vip">会员权益</string>
<string name="recycle_center">回收中心</string>
<string name="mine">我的</string>
<string name="ware_house">仓库</string>
......
......@@ -47,7 +47,7 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
//banner
implementation 'com.github.zhpanvip:viewpagerindicator:1.2.1'
implementation 'com.github.zhpanvip:bannerviewpager:3.5.5'
// implementation 'com.github.zhpanvip:bannerviewpager:3.5.5'
//刷新 核心必须依赖
implementation 'io.github.scwang90:refresh-layout-kernel:2.0.5'
implementation 'io.github.scwang90:refresh-header-classics:2.0.5' //经典刷新头
......
......@@ -3,6 +3,7 @@ package com.zxbw.modulemain.activity
import android.util.Log
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager.widget.ViewPager
import androidx.viewpager2.widget.ViewPager2
import com.zxbw.modulemain.R
import com.zxbw.modulemain.adapter.DetailBannerAdapter
......@@ -78,19 +79,29 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View {
id_tv_goods_name?.text = goodsDetail?.title
var mList = listOf<String>("")
id_detail_top_banner.apply {
adapter = DetailBannerAdapter()
setLifecycleRegistry(lifecycle)
}.create((goodsDetail?.small_images ?:mList) as List<Nothing>?)
id_detail_top_banner.registerOnPageChangeCallback(object :
ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
Log.e("MXL", "" + position)
id_tv_vp_index.text = "${position + 1}/${goodsDetail?.small_images?.size ?: 0 + 1}"
}
})
if (!goodsDetail?.small_images.isNullOrEmpty()) {
var mPagerAdapter = DetailBannerAdapter(goodsDetail?.small_images!!)
id_detail_top_banner.adapter = mPagerAdapter
id_tv_vp_index.text = "${1}/${goodsDetail?.small_images?.size ?: 0 + 1}"
id_detail_top_banner.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
id_tv_vp_index.text =
"${position + 1}/${goodsDetail?.small_images?.size ?: 0 + 1}"
}
override fun onPageScrollStateChanged(state: Int) {
}
})
}
}
override fun onClick(v: View?) {
......
package com.zxbw.modulemain.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.viewpager.widget.PagerAdapter
import com.bumptech.glide.Glide
import com.zhpan.bannerview.BaseBannerAdapter
import com.zhpan.bannerview.BaseViewHolder
import com.zxbw.modulemain.R
import com.zxhl.cms.AppContext
import java.util.ArrayList
/**
* @author (wangXuewei)
* @datetime 2022-05-26 22:30 GMT+8
* @detail :
*/
class DetailBannerAdapter() : BaseBannerAdapter<String>() {
override fun bindData(
holder: BaseViewHolder<String>?,
data: String?,
position: Int,
pageSize: Int
) {
var imageView = holder?.findViewById<ImageView>(R.id.id_img_detail_banner_bg) as ImageView
// if (mContext?.isFinishing==false){
// Glide.with(mContext!!)
// .load(data)
// .into(imageView)
// }
Glide.with(imageView)
.load(data)
.placeholder(R.drawable.beijing)
.into(imageView);
class DetailBannerAdapter : PagerAdapter {
private var mViewList: List<String> = ArrayList()
constructor(
mList: List<String>
) : super() {
mViewList = mList //构造方法,参数是我们的页卡,这样比较方便。
}
override fun isViewFromObject(p0: View, p1: Any): Boolean {
return p0 == p1
}
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val data = mViewList[position]
val view = LayoutInflater.from(AppContext.get()).inflate(R.layout.item_layout_detail_banner, null)
val bg = view.findViewById<ImageView>(R.id.id_img_detail_banner_bg)
Glide.with(AppContext.get()).load(data).into(bg)
container.addView(view)// 添加页卡
return view
}
override fun getItemPosition(`object`: Any): Int {
return super.getItemPosition(`object`)
}
override fun getLayoutId(viewType: Int): Int {
return R.layout.item_layout_detail_banner
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as View)
}
override fun getCount(): Int {
return mViewList.size
}
}
\ No newline at end of file
......@@ -49,7 +49,12 @@ class HomeQyBannerAdapter : PagerAdapter {
OnRecycleItemClickListener<JgqQyEntity> { view, position, data ->
JumpUtils.RightsDetailJump(data.brand, data.icon)
})
grid_view.layoutManager = GridLayoutManager(mActivity, 5)
val manager = GridLayoutManager(mActivity, 5)
manager.isSmoothScrollbarEnabled = true;
grid_view.setHasFixedSize(true);
grid_view.isNestedScrollingEnabled = false;
grid_view.layoutManager = manager
grid_view.adapter = mJgqQyAdapter
mJgqQyAdapter.clear()
mJgqQyAdapter.appendToList(data)
......
......@@ -112,7 +112,6 @@ class HomeRecommendAdapter : BaseRecyclerAdapter<TbGoodsItemEntity, RecyclerView
if (i < splitNum - 1) {
value = mQyDataList?.subList(i * splitItemNum, (i + 1) * splitItemNum)
} else {
// 最后一组
value = mQyDataList?.subList(i * splitItemNum, mQyDataList?.size!!)
}
if (value != null) {
......
......@@ -8,6 +8,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
......@@ -40,7 +41,8 @@ class JgqQyAdapter : BaseRecyclerAdapter<JgqQyEntity, JgqQyAdapter.ViewHolder> {
.apply(RequestOptions.bitmapTransform(CircleCrop()))
.into(holder?.id_icon!!)
holder.id_name?.text = bean.brand
holder.id_ll_qy_item_view?.setOnClickListener {
holder.id_tv_discount_value?.text = "${bean.maxDiscount}折"
holder.id_rl_qy_item_view?.setOnClickListener {
listener.onItemClick(it, position, bean)
}
}
......@@ -53,18 +55,21 @@ class JgqQyAdapter : BaseRecyclerAdapter<JgqQyEntity, JgqQyAdapter.ViewHolder> {
}
class ViewHolder : RecyclerView.ViewHolder {
var id_ll_qy_item_view: LinearLayout?
var id_rl_qy_item_view: RelativeLayout?
var id_icon: ImageView?
var id_name: TextView?
var id_tv_discount_value: TextView?
constructor(
itemView: View
) : super(itemView) {
id_ll_qy_item_view = itemView.findViewById<LinearLayout>(R.id.id_ll_qy_item_view)
id_rl_qy_item_view = itemView.findViewById<RelativeLayout>(R.id.id_rl_qy_item_view)
id_icon =
itemView.findViewById<ImageView>(R.id.id_img_qy_icon)
id_name =
itemView.findViewById<TextView>(R.id.id_tv_qy_name)
id_tv_discount_value =
itemView.findViewById<TextView>(R.id.id_tv_discount_value)
}
......
......@@ -36,8 +36,8 @@ class NavigationBottomView : RelativeLayout {
mShopText = findViewById(R.id.id_view_navigation_bottom_box)
mUserText = findViewById(R.id.id_view_navigation_bottom_user)
mShopText?.setOnClickListener {
mUserText?.setTextColor(resources.getColor(R.color.color_333333))
mShopText?.setTextColor(resources.getColor(R.color.color_4c84ff))
mUserText?.setTextColor(resources.getColor(R.color.color_999999))
mShopText?.setTextColor(resources.getColor(R.color.color_333333))
val userDrawable = getResources().getDrawable(R.drawable.icon_bottom_my_default)
userDrawable.setBounds(
0,
......@@ -59,8 +59,8 @@ class NavigationBottomView : RelativeLayout {
navifationCallback?.onNavigationClick(it.id)
}
mUserText?.setOnClickListener {
mUserText?.setTextColor(resources.getColor(R.color.color_4c84ff))
mShopText?.setTextColor(resources.getColor(R.color.color_333333))
mShopText?.setTextColor(resources.getColor(R.color.color_999999))
mUserText?.setTextColor(resources.getColor(R.color.color_333333))
val userDrawable = getResources().getDrawable(R.drawable.icon_bottom_my_click)
userDrawable.setBounds(
0,
......
......@@ -107,14 +107,10 @@
android:layout_width="match_parent"
android:layout_height="360dp">
<com.zhpan.bannerview.BannerViewPager
<androidx.viewpager.widget.ViewPager
android:id="@+id/id_detail_top_banner"
android:layout_width="match_parent"
app:bvp_can_loop="false"
app:bvp_indicator_visibility="gone"
app:bvp_auto_play="false"
android:layout_height="match_parent"/>
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/id_tv_vp_index"
......
......@@ -2,13 +2,14 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/id_ll_detail_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/id_img_detail_banner_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop" />
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY" />
</LinearLayout>
......@@ -4,7 +4,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/shape_ffffff_r10"
......
......@@ -7,6 +7,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_home_jgq_qy_grid_list"
android:layout_width="match_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_height="wrap_content" />
</RelativeLayout>
\ No newline at end of file
......@@ -5,7 +5,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="20dp"
android:background="@color/white"
android:gravity="center_horizontal"
android:orientation="horizontal">
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/id_ll_qy_item_view"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/id_rl_qy_item_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/id_img_qy_icon"
android:layout_width="40dp"
android:layout_height="40dp" />
android:layout_height="40dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp" />
<TextView
android:id="@+id/id_tv_qy_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/id_img_qy_icon"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text=""
android:textColor="@color/color_333333"
android:textSize="14sp" />
</LinearLayout>
\ No newline at end of file
<TextView
android:id="@+id/id_tv_discount_value"
android:layout_width="wrap_content"
android:layout_height="18dp"
android:layout_alignTop="@id/id_img_qy_icon"
android:layout_marginLeft="-20dp"
android:layout_marginTop="-15dp"
android:layout_toEndOf="@id/id_img_qy_icon"
android:background="@drawable/img_zekou_label_bg"
android:gravity="center"
android:text="1.1折"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
\ No newline at end of file
......@@ -24,6 +24,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="会员月卡"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:textColor="@color/color_999999"
android:textSize="12sp" />
......
......@@ -21,9 +21,10 @@
android:drawableTop="@drawable/icon_bottom_shop_click"
android:drawablePadding="2dp"
android:gravity="center"
android:textStyle="bold"
android:includeFontPadding="false"
android:text="@string/box"
android:textColor="@color/color_4c84ff"
android:text="@string/bottom_vip"
android:textColor="@color/color_333333"
android:textSize="11sp" />
<TextView
......@@ -34,9 +35,10 @@
android:layout_weight="1"
android:drawableTop="@drawable/icon_bottom_my_default"
android:drawablePadding="2dp"
android:textStyle="bold"
android:gravity="center"
android:text="@string/mine"
android:textColor="@color/color_333333"
android:textColor="@color/color_999999"
android:textSize="11sp" />
</LinearLayout>
</merge>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment