material-chip-view

material-chip-view

Android Material Chip View:灵活的标签和分类UI组件

Material Chip View是一个Android UI库,提供可定制的chip组件用于创建标签、分类、联系人或文本云等界面元素。该库支持多种自定义选项,包括可关闭和可选择的chip,以及自定义图标、颜色和样式。库还提供Jetpack Compose版本和Material 3设计支持,为开发者提供了简单灵活的方式来增强应用程序的界面和交互性。

Material Chip ViewAndroidUI组件自定义视图标签Github开源项目

Material Chip View

Material Chip view. Can be used as tags for categories, contacts or creating text clouds. This library can be an alternative for Material Chip from Jetpack library.<img src="https://github.com/robertlevonyan/materialChipView/blob/master/images/chip.png" width="500" />
Android ArsenalAndroid Arsenal API
MaterialChipVersionMaven Central
ComposeChipVersionMaven Central
Material3ComposeChipVersionMaven Central

Setup

Add following line of code to your project level gradle file

repositories { mavenCentral() }

Add following line of code to your module(app) level gradle file

Groovy:

implementation 'com.robertlevonyan.view:MaterialChipView:<MaterialChipVersion>'

Kotlin:

implementation("com.robertlevonyan.view:MaterialChipView:$MaterialChipVersion")

Maven:

<dependency> <groupId>com.robertlevonyan.view</groupId> <artifactId>MaterialChipView</artifactId> <version>MaterialChipVersion</version> <type>pom</type> </dependency>

For Jetpack Compose version

implementation("com.robertlevonyan.compose:materialchip:$ComposeChipVersion")

or if you want to yse Material3 version

implementation("com.robertlevonyan.compose:material3chip:$Material3ComposeChipVersion")

Usage

<com.robertlevonyan.views.chip.Chip android:id="@+id/chip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/customTitle" />

alt text

Cutomizing Chip

app:mcv_closable="true"

alt text

app:mcv_selectable="true"
alt textalt text
app:mcv_chipIcon="@drawable/customIcon"

alt text

app:mcv_backgroundColor="@color/customChipBackgroundColor" app:mcv_closeColor="@color/customCloseIconColor" app:mcv_selectedBackgroundColor="@color/customSelectedChipColor" app:mcv_textColor="@color/customTitleColor"
alt textalt text

Attributes

Custom AtributesDescription
app:mcv_textColorCustom color for text label
app:mcv_backgroundColorCustom background color
app:mcv_selectedBackgroundColorCustom background color when selected
app:mcv_chipIconIcon resource for Chip
app:mcv_closableChip with close button
app:mcv_closeColorCustom color for close button
app:mcv_selectableChip with selection button
app:mcv_selectedTextColorCustom color for label when selected
app:mcv_cornerRadiusChange the corner radius of your Chip
app:mcv_strokeSizeAdd stroke to your Chip
app:mcv_strokeColorChoose a custom stroke color for your Chip
app:mcv_selectedStrokeSizeStroke size when selected
app:mcv_selectedStrokeColorCustom stroke color when selected
app:mcv_iconTextInstead of an image create icon from String
app:mcv_iconTextColorSelect a color for your String icon
app:mcv_iconTextBackgroundColorSelect a background color for String icon

Setting Listeners

val chip = findViewById(R.id.chip);

Chip click listener

chip.setOnClickListener { view -> //Your action here... }

On Close button click listener

chip.setOnCloseClickListener { view -> //Your action here... }

On Icon click listener

chip.setOnIconClickListener { view -> //Your action here... }

On Select button click listener

chip.setOnSelectClickListener { view: View, selected: Boolean -> //Your action here... }

Customizing Chip from code

chip.text = "My awesome Chip" // Set Chip label chip.chipTextColor = chipTextColor // Set Chip label color chip.chipBackgroundColor = chipBackgroundColor //Set custom background color chip.chipSelectedBackgroundColor = chipSelectedBackgroundColor //Set custom background color when selected chip.chipIcon = myIconDrawable //Set Icon Drawable for Chip chip.chipIconBitmap = myIconBitmap //Set Icon Bitmap for Chip chip.closable = true //Set Chip has close button chip.chipCloseColor = chipCloseColor //Set custom color for close button chip.chipSelectedCloseColor = chipSelectedCloseColor //Set custom color for close button on selected state chip.selectable = false //Set Chip has selection button chip.chipSelected = true // Set Chip selected chip.chipSelectedTextColor = chipSelectedTextColor //Set custom color for label when selected chip.cornerRadius = 5 // Set corner radius of your Chip chip.strokeSize = 2 // Set width of stroke chip.strokeColor = strokeColor // Set stroke color for your Chip chip.selectedStrokeSize = 2 // Set width of stroke when selected chip.selectedStrokeColor = selectedStrokeColor // Set stroke color for your Chip when selected chip.setIconText(text, iconTextColor, iconTextBackgroundColor); // Set Chip icon text, text color and background color (in case of Kotlin iconTextColor and iconTextBackgroundColor have default value of 0) chip.chipHorizontalPadding = 10 // Set horizontal padding for chip

For Jetpack Compose version

setContent { Box(modifier = Modifier.fillMaxWidth()) { MaterialChip( text = "Some Text", chipIcon = ChipIconRes(icon = R.drawable.android), // ChipIconBitmap or ChipIconDrawable interaction = ChipInteraction.Closable, // Selectable, SelectableWithoutIcon or None strokeSize = 1.dp, selectedStrokeSize = 2.dp, strokeColor = Color.Red, selectedStrokeColor = Color.Blue, onSelectClick = { selected -> // your code here }, onIconClick = { // your code here }, onChipClick = { // your code here }, onCloseClick = { // your code here } ) } }

Also there is a MaterialChipGroup available for Jetpack Compose version

setContent { Box(modifier = Modifier.fillMaxWidth()) { MaterialChipGroup( items = listOf("Chip1", "Chip2", "Chip3"), createTitle = { it }, //returns a String for the title initialSelectedElementIndex = 1, // default value is -1 (means nothing is selected) onItemSelected = { position, element -> // do something }, // the rest is for Chip appearance interaction = ChipInteraction.Selectable, strokeSize = 1.dp, selectedStrokeSize = 2.dp, strokeColor = Color.Red, selectedStrokeColor = Color.Blue, backgroundColor = Color.Red, selectedBackgroundColor = Color.Blue, ) } }

Versions

1.0.0 (Material3)

Jetpack compose version with Material 3 styling

3.0.0

Jetpack Compose support added Chip Group added for JetpackCompose

2.2.1 - 2.2.7

Update to Java 11 SDK 31 ready Minor updates

2.2.0

Migration to mavenCentral

2.1.1 - 2.1.7

Minor changes, some missing parts pushed

2.1.0

New update, now it is possible to make chip selectable without selection icon

2.0.1 - 2.0.7

Minor changes, some missing parts pushed

2.0.0

New version of the library. Fully rewritten with Kotlin and AndroidX ready 🤩

1.2.1, 1.2.2

General bug fixed

1.1.3

Selection option added

1.1.2

Icon text issue fixed

1.1.1

Updated version of Material Chip View: - the attribute names are changed to escape conflicts with other libs - added new features like customizable corner radius and stroke - recreation issue fixed for post Lollipop versions

1.0.1

Recreation issues are fixed

1.0.0

First version of library

Contact

<a href="https://www.buymeacoffee.com/robertlevonyan"> <img src="https://github.com/robertlevonyan/material-chip-view/blob/master/images/coffee.jpeg" width="300" /> </a>

Licence

    Material Chip View©
    Copyright 2022 Robert Levonyan
    Url: https://github.com/robertlevonyan/materialChipView

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

编辑推荐精选

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

下拉加载更多