跳转到内容

TopTips

页面顶部提示条,对应 ColorOS 的 COUIDefaultTopTips:圆角卡片内含可选的 24dp 前置图标、14sp 文案和一个尾部元素——强调色行动按钮或圆形关闭按钮。切换可见性会播放 COUI 的 250ms 纵向缩放动画。

引入

kotlin
import io.github.suqi8.coui.kmp.basic.TopTips
import io.github.suqi8.coui.kmp.basic.TopTipsDefaults

基本用法

kotlin
TopTips(
    text = "发现新的安全更新",
    actionText = "更新",
    onAction = { /* 处理行动 */ },
    modifier = Modifier.fillMaxWidth(),
)

带前置图标的可关闭提示

kotlin
var visible by remember { mutableStateOf(true) }

TopTips(
    text = "带前置图标的可关闭提示",
    visible = visible,
    startIcon = {
        Icon(
            imageVector = COUIIcons.Basic.Search,
            contentDescription = null,
            modifier = Modifier.size(24.dp),
        )
    },
    onClose = { visible = false },
    modifier = Modifier.fillMaxWidth(),
)

属性

TopTips

属性类型说明默认值必需
textString提示文案-
modifierModifier应用于提示条的修饰符Modifier
visibleBoolean是否可见(切换时播放进出动画)true
startIcon(@Composable () -> Unit)?可选前置图标null
actionTextString?尾部行动按钮文案null
onAction(() -> Unit)?行动按钮点击回调null
onClose(() -> Unit)?关闭按钮回调(无 actionText 时显示)null
cornerRadiusDp提示条圆角TopTipsDefaults.CornerRadius
colorsTopTipsColors颜色配置TopTipsDefaults.topTipsColors()

TopTipsDefaults

常量类型默认值COUI 来源
CornerRadiusDp12.dpcouiRoundCornerM
ContentPaddingDp12.dpcoui_toptips_view_btn_margin
VerticalPaddingDp12.dpcoui_toptips_view_title_top_margin
IconSizeDp24.dpcoui_toptips_view_icon_btn_size
IconSpacingDp8.dpcoui_toptips_view_title_start_margin
TextMinHeightDp20.dpcoui_toptips_view_title_min_height

方法

方法名类型说明
textStyle()TextStyle文案的默认文本样式(14sp,coui_toptips_view_default_text_size
actionTextStyle()TextStyle行动按钮的默认文本样式(14sp Medium)
topTipsColors()TopTipsColors创建默认颜色配置(见下)

topTipsColors() 工厂

参数类型默认值COUI 属性
containerColorColor亮色 #0A000000 / 暗色 #14FFFFFFcouiColorContainer4
contentColorColorCOUITheme.colorScheme.onSurfaceSecondarycouiColorSecondNeutral
actionColorColorCOUITheme.colorScheme.primarycouiColorPrimaryText
closeButtonColorColor亮色 #29000000 / 暗色 #40FFFFFFcouiColorControls
closeIconColorColorColor.Whitecoui_ic_toptips_close

行为

  • 尾部元素互斥,与 COUIDefaultTopTipsView 的按钮类型一致:提供 actionText 时显示强调色文字按钮,否则提供 onClose 时显示圆形关闭按钮。
  • 当单行文案将与行动按钮相撞时,按钮下移到文字下方靠右单独一行(COUIDefaultTopTipsView.isNeedMultiText);此布局中前置图标与第一行文字对齐。
  • 切换 visible 会播放 COUICustomTopTips 的显示/消失动画:以中心为轴的 250ms 纵向缩放;消失动画结束后提示条移出组合。
  • 文案为 14sp(coui_toptips_view_default_text_size),行动按钮文案为 14sp Medium。

变更日志

基于 Apache-2.0 许可发布