第一百七十回 Material3中的IconButton

本文介绍了Material3中IconButton的三种风格:filled、filledTonal和outlined,提供使用方法、代码示例,并展示了不同风格的效果。


我们在上一章回中介绍了"如何修改NavigationBar组件的形状"相关的内容,本章回中将 介绍IconButtion组件.闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

我们在前面章回中介绍Button时介绍过IconButon,它表示带有图标的Button,我们在本章回中的介绍的IconButton是指Material3中新添加的IconButton,它和之前介绍的IconButton类似,只是在原IconButton的基础上提供了各种风格,接下来我们将详细介绍它们的使用方法。

2. 使用方法

Material3在原IconButton的基础上提供了三种风格的IconButton,接下来我们将分别介绍这三种风格的IconButton.

2.1 filled风格

该风格是一种填充风格,它会使用Material3中的PrimaryColor来填充,同时把Icon的颜色设置为白色。官方为了方便开发人员使用,在SDK中提供了专门的filled方法来创建此风格的按钮:IconButton.filled().我们将在后面的小节中通过示例代码来演示如何使用该方法。

2.2 filledTonal风格

该风格是一种填充风格,它会使用Material3中的PrimaryColor来填充,不过颜色比filled风格要淡一些,同时把Icon的颜色设置为黑色。官方为了方便开发人员使用,在SDK中提供了专门的filledTonal方法来创建此风格的按钮:IconButton.filledTonal().我们将在后面的小节中通过示例代码来演示如何使用该方法。

该风格和filled风格类似,该风格重在突出Icon,因为Icon是深色而背景是浅色的,而filled风格重在突出背景,因为背景是深色的,而Icon是浅色的。

2.3 outlined风格

该风格是一种空心风格,它会在Icon外层包裹一个边框,边框的颜色和Icon的颜色相同,都是深黑色。官方为了方便开发人员使用,在SDK中提供了专门的outlined方法来创建此风格的按钮:IconButton.outlined().我们将在后面的小节中通过示例代码来演示如何使用该方法。

注意:我们在这里介绍的颜色和风格都是指Material3的默认风格,如果大家修改了默认风格或者主题颜色,那么出现的颜色和风格会与这里介绍的不同。

3. 代码与效果

3.1 示例代码

介绍完各种风格的IconButton后,我们通过具体的代码来演示它们的使用方法。

Row(
  mainAxisAlignment: MainAxisAlignment.spaceAround,
  children: [
    IconButton(onPressed
在Android中,`RemoteViews` 是一个用于构建 `Notification` 的轻量级视图容器,它允许你在通知中动态地设置内容。如果你想要使用Material Design 3Material 3)的颜色并且保持透明度,通常会涉及到以下步骤: 1. Material 3颜色资源:首先,你需要获取Material 3主题中的颜色ID,比如 `colorPrimary`, `colorOnPrimary`, 等等。这些颜色可以在`styles.xml`文件中通过 `<style>` 标签内的 `?attr/colorScheme` 来引用。 2. 设置背景:在创建 `RemoteViews` 对象时,你可以使用 `setBackgroundColor()` 方法,并传入对应的Material 3颜色ID。例如: ```java RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.notification_view); int backgroundColor = ContextCompat.getColor(this, R.color.material3_colorPrimary); notificationView.setBackgroundColor(backgroundColor); ``` 3. 透明度处理:对于透明度,`RemoteViews`本身并不直接支持设置Alpha值。但是,你可以在布局XML文件中添加半透明背景(比如 `android:background="@android:color/transparent"`),然后在通知显示时使用第三方库如`CircleTransform` 或者自定义动画来实现透明渐变效果。 4. 动画过渡:为了实现平滑的透明度变化,你可以结合使用 `PendingIntent` 和 `NotificationChannel` 的 `setLightSettings()` 方法,以及Notification Builder的 `setSmallIcon(int iconId, Bitmap largeIcon)` 和 `setContentDescription(String description)` 来展示带有淡入淡出效果的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值