# KingKongView **Repository Path**: htgogo/KingKongView ## Basic Information - **Project Name**: KingKongView - **Description**: first init - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-07-24 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![](https://jitpack.io/v/com.gitee.htgogo/KingKongView.svg)](https://jitpack.io/#com.gitee.htgogo/KingKongView) # KingKongView Android RecyclerView 实现的金刚区View,支持单/多行 && 仿淘宝样式(开始单行,滚动后多行)

## 安装 添加远程仓库根据创建项目的 Android Studio 版本有所不同。 ### Android Studio Arctic Fox以下版本 在项目根目录的 `build.gradle` 添加仓库: ```groovy allprojects { repositories { // ... maven { url 'https://jitpack.io' } } } ``` ### Android Studio Arctic Fox以上版本 在项目根目录的 `settings.gradle` 添加仓库: ```kotlin dependencyResolutionManagement { repositories { // ... maven { url 'https://jitpack.io' } } } ``` 然后在 module 的 `build.gradle` 添加依赖框架: ```groovy dependencies { //常用工具类 implementation 'com.gitee.htgogo:KingKongView:tag' } ``` 项目根目录中 `gradle.properties` 添加: ``` android.enableJetifier=true android.useAndroidX=true ``` ## 使用 ```kotlin kingKongView.setUp( list = this.list, style = if (index == 0) KingKongStyle.FAKE_ALI else (if (index == 1) KingKongStyle.ONE_LINE else KingKongStyle.MULTI_LINE), lines = if (index>1) 2 else KingKongView.fakeAliRealLines(this.list,4), span = 4, itemOffScreenWidth = itemOffScreenWidth, itemClick = {data, pos-> Toast.makeText(kkView.context,"pos=${pos} ${data}",Toast.LENGTH_SHORT).show() }, //提供easyKHolderCreator创建Holder,也可以自己创建Holder // holderCreator = object :KHolderCreator{ // override fun creatorHolder(itemView: View): KHolder { // return MyHolder(itemView) // } // override fun getLayoutId() = R.layout.item_nav_list // } holderCreator = easyKHolderCreator(R.layout.item_list) { itemView, holder, data, position -> itemView.findViewById(R.id.tv_text).text = data.toString() itemView.findViewById(R.id.iv_icon).setImageResource(R.mipmap.icon_jobfair) } ) //设置底部Indicator,相关属性可以看demo kingKongView.setupIndicator(if (index == 0) KingKongStyle.FAKE_ALI else (if (index == 1) KingKongStyle.ONE_LINE else KingKongStyle.MULTI_LINE), indicatorMarginTop = 10.dp) class MyHolder(itemView: View) : KHolder(itemView) { private var text:TextView?=null private var icon:ImageView?=null override fun initView(itemView: View) { text = itemView.findViewById(R.id.tv_text) icon = itemView.findViewById(R.id.iv_icon) } override fun onBind(holder: KHolder, data: String?, position: Int) { text?.text = data.toString() icon?.setImageResource(R.mipmap.icon_jobfair) } } ``` ## Api介绍 ```kotlin KingKongView /** * @param list 数据源 * @param style [KingKongStyle] * @param lines 显示行数 * @param span 显示列数 * @param itemOffScreenWidth 额外显示的item宽度 * @param itemClick 点击事件 * @param holderCreator 创建ItemHolder函数 */ fun setUp( list: List?, style: KingKongStyle, lines: Int = this.lines, span: Int = this.spanCount, itemOffScreenWidth: Int = 0, itemClick: ((data: T?,pos:Int) -> Unit)? = null, holderCreator: KHolderCreator ) /** * @param indicatorWidth 指示器宽度 * @param indicatorHeight 指示器高度 * @param indicatorRadius 指示器圆角 * @param indicatorBgColor 指示器背景色 * @param indicatorThumbColor 指示器内部滑块颜色 * @param indicatorThumbWidth 指示器内部滑块宽度 * @param indicatorMarginTop 指示器离列表顶部距离 * @param smallIndicatorHorizonGap style==FakeAli时底部两个指示器间距 * @param indicatorCreator 提供 draw方法,绘制自定义indicator */ fun setupIndicator( style: KingKongStyle?=null, indicatorWidth: Int = 0, indicatorHeight: Int = 0, indicatorRadius: Int = 0, indicatorBgColor: Int = 0, indicatorThumbColor: Int = 0, indicatorThumbWidth: Int = 0, indicatorMarginTop: Int = 0, smallIndicatorHorizonGap: Int = 0, indicatorCreator: KIndicatorCreator? = null, ) ```