Truffle Shuffle 是一个 Android UI 组件卡库库,带有有趣的动画。图库很容易定制,并且是基于数组中对象的数量和这些对象内的内容的数据驱动的。卡片库使用带有自定义视图属性的定制 Android ViewGroup 来指定各个卡片的大小占 ViewGroup 大小的百分比。此卡片库用于产品系列中的 TurboTax 移动应用程序。 Truffle Shuffle is written 100% in Kotlin!
要运行示例项目,请克隆 repo 并运行 Android 应用程序安卓工作室在模拟器上。 你可以玩这个例子
- 更改 app/src/main/res/layout/card_layout.xml 中卡片的布局
- 在 app/src/main/kotlin/com/intuit/truffle/shuffle/MainActivity.kt 的 getCardDetails() 中更改数组中的卡片数量
- 在 app/src/main/res/values/card_view_group_percentages.xml 中更改视图组的百分比
要为该项目做出贡献,请确保提交的代码符合该项目的格式标准。
要重新格式化或检查提交的代码是否合规,请遵循以下选项之一:
使用 Gradle 任务(推荐 -ktlint 文档):
./gradlew ktlint
Use this command to check the formatting rules are covered
/gradlew ktlintFormat
Use this command to re-format code that is not compliant with this project's formatting rules.
使用 ktlint 引擎 (ktlint 文档):
ktlint
Use this command to check the formatting rules are covered
ktlint "src/**/*.kt" "!src/**/*Test.kt"
Check only certain locations (prepend ! to negate the pattern)
ktlint -F
Use this command to re-format code that is not compliant with this project's formatting rules. (if some errors cannot be fixed automatically they will be printed to stderr)
ktlint -F "src/**/*.kt"
Use this command to re-format certain locations (prepend ! to negate the pattern) . (if some errors cannot be fixed automatically they will be printed to stderr)
ktlint --install-git-pre-commit-hook
Install git hook to automatically check files for style violations on commit.
要将其添加到您自己的 Android 应用程序,请完成以下步骤:
-
将依赖项添加到项目的 build.gradle 文件的 dependencies 下:
dependencies { implementation 'com.intuit.truffleshuffle:truffleshuffle:1.0.0' }
并确保将 jcenter() 添加到您的应用程序 build.gradle
repositories {
jcenter()
}
- 将 com.intuit.truffleshuffle.CardViewGroup 添加到您想要卡片库的 xml 文件中,例如 app/src/main/res/layout/activity_main.xml
- 将你想要的百分比添加到 xml 文件中 CardViewGroup 的自定义属性
- 自定义:dashboardCardHeightPercentage,自定义:widthPercentage,自定义:topSpacingPercentage,自定义:bottomSpacingPercentage
- 将你想要的百分比添加到 xml 文件中 CardViewGroup 的自定义属性
- 为类似于 app/src/main/res/layout/card_layout.xml 的卡片内容添加 xml 布局 (card_layout.xml)
- 创建一个包含 2 个文件的文件夹 cardGallery:
- CardContent 类似于 app/src/main/kotlin/com/intuit/truffle/shuffle/cardGallery/CardContent.kt
- 这是卡片内容的数据对象
- CustomizeAdapter 类似于 app/src/main/kotlin/com/intuit/truffle/shuffle/cardGallery/CustomizeAdapter.kt
- 构造函数应该采用 ArrayList并且应该扩展 CardContentAdapter
- 覆盖 getViewContent() 函数以将 cardContent 中的数据内容设置为 card_layout.xml 中的视图,即。在 textView 中设置文本
- CardContent 类似于 app/src/main/kotlin/com/intuit/truffle/shuffle/cardGallery/CardContent.kt
- 在您将使用此 UI 组件的 Activity 中:
- 实例化您刚刚定义的 CustomizeAdapter 并传入 CardContents 的数组列表和卡内的资源 ID,即。 R.layout.card_layout
- 使用 findViewById() 在您刚刚使用 CardViewGroup 创建的 CustomizeAdapter 上调用 setupAdapter()
- 现在 TruffleShuffle UI 组件可以使用了!
- 如果你需要帮忙, 打开一个问题并标记为
help wanted
. - 如果你发现一个错误, 打开一个问题并标记为
bug
. - 如果你有一个功能请求, 打开一个问题并标记为
feature
. - 如果你想贡献,请参考贡献文档并提交拉取请求。
- 为了提交拉取请求,请分叉此回购并从分叉的回购中提交 PR。
- 详细说明您的 PR 修复/增强/添加的内容。
- 在我们合并之前,每个 PR 都必须获得批准。
感谢这些优秀的人(表情符号键):
该项目遵循所有贡献者规格。欢迎任何形式的贡献!