# 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/#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,
)
```