Jetpack:012-Jetpack中的弹出菜单

本文详细介绍了Jetpack库中的DropdownMenu和DropdownMenuItem用于创建Android弹出菜单的方法,包括参数设置、使用示例和状态控制。通过实例展示了如何实现菜单显示、位置调整以及菜单项的定制。


我们在上一章回中介绍了Jetpack中标题栏相关的内容,本章回中主要 弹出菜单。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在本章回中介绍的弹出菜单主要指标题栏右侧的详情菜单,平常不显示,当点击详情图标时才会弹出菜单。在Android的View体系中叫它PopupMenu组件。在Jectpack库中叫DropdownMenu。虽然名字不同,但是显示的效果相同,为了方便介绍,我统一称它们为弹出菜单。

2. 使用方法

弹出菜单通过DropdownMenuDropdownMenuItem这两个可组合函数一起实现,接下来我们分别介绍这两个函数的使用方法。

2.1 DropdownMenu

该函数主要用来显示弹出菜单,它提供了一些参数来控制菜单,下面是常用的参数:

  • expanded参数:主要用来控制是否显示菜单,值为true时显示菜单,否则不显示菜单;
  • offset参数:主要用来控制菜单弹出的位置,默认在action图标左下角显示弹出菜单;
  • onDismissRequest参数:点击菜单外任意位置时是否关闭菜单,值为true时关闭菜单,否则不关闭菜单;

2.2 DropdownMenuItem

该函数主要用来控制弹出菜单中的菜单项,它提供了相关的参数来控制菜单项,下面是常用的参数:

  • text:主要用来控制菜单项显示的文本内容;
  • onClick:主要用来控制菜单项的点击事件;
  • leadingIcon:主用用来控制菜单项的图标,位于菜单项最左侧;
  • trailingIcon:主用用来控制菜单项的图标,位于菜单项最右侧;
  • colors:主要用来控制菜单项中的文本,图标,背景等内容的颜色;

3. 示例代码

介绍完实现弹出菜单的可组合函数后,我们将通过具体的代码来演示这些函数的用法,下面是示例代码,请大家参考:

3.1 代码和注释

//自定义的popupMenu,通过可以组合函数DropdownMenu实现,同时实现了点击功能,不过没有给item添加具体的功能
@Composable
fun ShowPopupMenu() {
   
   
    //是否显示popupMenu,默认显示
    var show by remember {
   
    mutableStateOf(
这个问题可能是由于你的项目中使用了过时的 Android Support Library 而导致的。在最新版本的 Android Gradle 插件中,Google 已经将 Android Support Library 替换为 AndroidX。因此,你需要将你的项目迁移到 AndroidX。 要迁移到 AndroidX,你可以使用 Android Studio 中的 Refactor 工具。具体步骤如下: 1. 打开你的项目,在菜单栏中选择 Refactor -> Migrate to AndroidX。 2. 在弹出的对话框中,选择要迁移的项目和模块,然后点击 Refactor。 3. Android Studio 将会自动为你的项目更改所有依赖项和类引用,以使它们指向新的 AndroidX 库。 4. 如果 Refactor 过程中出现任何问题,你可以手动更改你的 build.gradle 文件,以使用 AndroidX 库。在 build.gradle 文件中添加以下代码: ``` android { ... defaultConfig { ... // 增加以下两行 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" android.useAndroidX=true } // 增加以下两行 configurations.all { resolutionStrategy { force 'com.android.support:support-v4:28.0.0' // 使用 28.0.0 版本的 support-v4 库 } } } // 移除以下两行 // implementation 'com.android.support:support-v4:28.0.0' // implementation 'com.android.support:appcompat-v7:28.0.0' // 增加以下两行 implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' ``` 5. 最后,点击菜单栏中的 Build -> Clean Project,等待清除完成后再点击 Build -> Rebuild Project,重新构建你的项目。 如果你还遇到其他问题,请参考 Google 的官方文档:[Migrating to AndroidX](https://developer.android.com/jetpack/androidx/migrate)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

talk_8

真诚赞赏,手有余香

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

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

打赏作者

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

抵扣说明:

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

余额充值