Jetpack Compose组件-小标签(Chip)


Jetpack Compose组件-小标签(Chip)

小标签(Chip)

Chip(小标签)类似于淘宝的历史搜索标签。

@ExperimentalMaterialApi
@Composable
fun Chip(
    // 点击回调
    onClick: () -> Unit,
    // 修饰符
    modifier: Modifier = Modifier,
    // 小标签使能
    enabled: Boolean = true,
    // 点击状态源
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
    // 小标签形状
    shape: Shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50)),
    // 小标签边框
    border: BorderStroke? = null,
    // 小标签的各种颜色
    colors: ChipColors = ChipDefaults.chipColors(),
    // 小标签左侧图标
    leadingIcon: (@Composable () -> Unit)? = null,
    content: @Composable RowScope.() -> Unit
): Unit
Chip(
    onClick = { /* Do something! */ },
    border = ChipDefaults.outlinedBorder,
    colors = ChipDefaults.outlinedChipColors(),
    leadingIcon = {
        Icon(
            Icons.Filled.Settings,
            contentDescription = "Localized description"
        )
    }
) {
    Text("Change settings")
}

可以选中的小标签(FilterChip)

@ExperimentalMaterialApi
@Composable
fun FilterChip(
    // 是否选中
    selected: Boolean,
    // 点击回调
    onClick: () -> Unit,
    // 修饰符
    modifier: Modifier = Modifier,
    // 小标签使能
    enabled: Boolean = true,
    // 点击状态源
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
    // 小标签形状
    shape: Shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50)),
    // 小标签边框
    border: BorderStroke? = null,
    // 小标签的各种颜色
    colors: SelectableChipColors = ChipDefaults.filterChipColors(),
    // 小标签左侧图标
    leadingIcon: (@Composable () -> Unit)? = null,
    // 小标签选中图标
    selectedIcon: (@Composable () -> Unit)? = null,
    // 小标签右侧图标
    trailingIcon: (@Composable () -> Unit)? = null,
    content: @Composable RowScope.() -> Unit
): Unit
val state = remember { mutableStateOf(false) }
FilterChip(
    selected = state.value,
    onClick = { state.value = !state.value },
    leadingIcon = {
        Icon(
            imageVector = Icons.Filled.Home,
            contentDescription = "Localized description",
            modifier = Modifier.requiredSize(ChipDefaults.LeadingIconSize)
        )
    },
    selectedIcon = {
        Icon(
            imageVector = Icons.Filled.Done,
            contentDescription = "Localized Description",
            modifier = Modifier.requiredSize(ChipDefaults.SelectedIconSize)
        )
    }
) {
    Text("Filter chip")
}

文章作者: Vinx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Vinx !
 上一篇
Jetpack Compose组件-卡片(Card) Jetpack Compose组件-卡片(Card)
Jetpack Compose组件-卡片(Card) 卡片(Card) Card 是 Compose 中一个布局组件,我们用它可以来创造出一些类似于卡片界面 @Composable @NonRestartableComposabl
下一篇 
Jetpack Compose 禁用硬件加速 Jetpack Compose 禁用硬件加速
Jetpack Compose 禁用硬件加速 Compose 默认开启硬件加速,这会导致一些绘图操作在低版本无效,此时需要关闭硬件加速。 以下代码实现了一个软件层,SoftwareLayer包裹的代码将关闭硬件加速。 @Compos
  目录