5.列表选择弹窗(BottomListPopup)
愿你出走半生,归来仍是少年!
环境:.NET 7、MAUI
从底部弹出的列表选择弹窗。
1.布局
<?xml version="1.0" encoding="utf-8" ?>
<toolkit:Popup xmlns="http://schemas.microsoft.com/dotnet/2021/maui"xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"x:Class="MauiLib.Utility.Controls.Popups.BottomListPopup"xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"x:Name="popup" xmlns:config="clr-namespace:MauiLib.Utility.Configs;assembly=MauiLib.Utility"Color="Transparent" VerticalOptions="End" > <VerticalStackLayout x:Name="outLyt" BackgroundColor="Transparent"><Border WidthRequest="1000" BackgroundColor="White" StrokeThickness="1" StrokeShape="RoundRectangle 10,10,10,10" HorizontalOptions="Center"><VerticalStackLayout ><Label x:Name="lbTitle" Text="请选择任意一项" FontAttributes="Bold" HorizontalOptions="Center" Padding="0,15,0,15" FontSize="18"/><Border Stroke="{Static config:ThemeConfig.SubTitle}" BackgroundColor="{Static config:ThemeConfig.SubTitle}" StrokeThickness="0.2" /><ListView x:Name="lv" RowHeight="35" ItemSelected="lv_ItemSelected" VerticalScrollBarVisibility="Never"><ListView.ItemTemplate><DataTemplate><ViewCell><Grid ><Grid.RowDefinitions><RowDefinition /></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition /></Grid.ColumnDefinitions><Label Text="{Binding}" FontSize="14" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" TextColor="Black"/></Grid></ViewCell></DataTemplate></ListView.ItemTemplate></ListView></VerticalStackLayout></Border></VerticalStackLayout>
</toolkit:Popup>
2.代码
public partial class BottomListPopup : CommunityToolkit.Maui.Views.Popup
{private Action<int, string> _itemClick;public string Title{set{lbTitle.Text = value;}}public BottomListPopup(List<string> items, Action<int, string> itemClick, int maxShowCount = 7){InitializeComponent();if (items == null || items.Count < 2){throw new ArgumentException("数据应至少两个!");}if (items.Distinct().Count()!=items.Count){throw new ArgumentException("数据不可存在重复项!");}lv.ItemsSource = items;_itemClick = itemClick;if (items.Count > maxShowCount){lv.HeightRequest = maxShowCount * 35;}else{lv.HeightRequest = items.Count * 35;}}private void lv_ItemSelected(object sender, SelectedItemChangedEventArgs e){_itemClick?.Invoke(e.SelectedItemIndex, e.SelectedItem.ToString());Close();}
}
3.使用
BottomListPopup popup = new BottomListPopup(new List<string>() { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", }, async (index, str) =>{await Toast.Make($"点击中第{index}项,数据为{str}").Show();});this.ShowPopup(popup);
4.效果
相关文章:
5.列表选择弹窗(BottomListPopup)
愿你出走半生,归来仍是少年! 环境:.NET 7、MAUI 从底部弹出的列表选择弹窗。 1.布局 <?xml version"1.0" encoding"utf-8" ?> <toolkit:Popup xmlns"http://schemas.microsoft.com/dotnet/2021/maui"xmlns…...
(十三)Head first design patterns原型模式(c++)
原型模式 原型模式就是就是对对象的克隆。有一些私有变量外界难以访问,而原型模式可以做到对原型一比一的复刻。 其关键代码为下面的clone方法。此方法将本对象进行复制传递出去。 class ConcretePrototype1 : public Prototype{ public:ConcretePrototype1(stri…...
Python基础之数据库操作
一、安装第三方库PyMySQL 1、在PyCharm中通过 【File】-【setting】-【Python Interpreter】搜索 PyMySQL进行安装 2、通过PyCharm中的 Terminal 命令行 输入: pip install PyMySQL 注:通过pip安装,可能会提示需要更新pip,这时可执行&#…...
redis-发布缓存
一.redis的发布订阅 什么 是发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可…...
Stata17安装教程
文章目录 **Stata17安装教程**前言系统要求Windows:macOS:Linux: 软件下载正式安装1.下载Stata 17安装包2.双击Stata17.exe开启安装3.接受同意条款,然后继续安装4.选择想要安装的版本,Stata BE为基础版、Stata SE为特别…...
Java PDFBox 提取页数、PDF转图片
PDF 提取 使用Apache 的pdfbox组件对PDF文件解析读取和转图片。 Maven 依赖 导入下面的maven依赖: <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.30</version> &l…...
【代码随想录14】104.二叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
目录 104.二叉树的最大深度题目描述参考代码 111.二叉树的最小深度题目描述参考代码 222.完全二叉树的节点个数题目描述参考代码 104.二叉树的最大深度 题目描述 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径…...
AWS 专题学习 P10 (Databases、 Data Analytics)
文章目录 专题总览1. Databases1.1 选择合适的数据库1.2 数据库类型1.3 AWS 数据库服务概述Amazon RDSAmazon AuroraAmazon ElastiCacheAmazon DynamoDBAmazon S3DocumentDBAmazon NeptuneAmazon Keyspaces (for Apache Cassandra)Amazon QLDBAmazon Timestream 2. Data & …...
一键拥有你的GPT4
这几天我一直在帮朋友升级ChatGPT,现在已经可以闭眼操作了哈哈😝。我原本以为大家都已经用上GPT4,享受着它带来的巨大帮助时,但结果还挺让我吃惊的,还是有很多人仍苦于如何进行升级。所以就想着写篇教程来教会大家如何…...
幻兽帕鲁服务器数据备份
搭建幻兽帕鲁个人服务器,最近不少用户碰到内存不足、游戏坏档之类的问题。做好定时备份,才能轻松快速恢复游戏进度 这里讲一下如何定时将服务器数据备份到腾讯云轻量对象存储服务,以及如何在有需要的时候进行数据恢复。服务器中间的数据迁移…...
【Digester解析XML文件的三种方式】
Digester解析XML文件的三种方式 1. Digester解析XML文件的三种方式1.1 作用及依赖jar包 2. 重点和难点3. XML文件4. 通过不同的方式解析这个xml文件4.1 通过java编码方式解析(javabean存储)4.2 通过java编码方式解析(list和map存储࿰…...
MATLAB curve fitting toolbox没有怎么办?
版本:MATLAB R2023b 如果在安装MATLAB时仅仅选择了安装MATLAB,而并未选择其他选项,则在进入MATLAB后会发现顶部的APP栏中无法找到曲线拟合工具箱。 本人跟随MATLAB中的教程进行下载时,出现了如下报错: 最终解决方案&a…...
Linux之快速入门(CentOS 7)
文章目录 一、Linux目录结构二、常用命令2.1 切换用户2.2查看ip地址2.3 cd2.4 目录查看2.5 查看文件内容2.6 创建目录及文件2.7 复制和移动2.8 其他2.9 tar3.0 which3.1 whereis3.2 find(这个命令尽量在少量用户使用此软件时运行,因为此命令是真的读磁盘…...
Spring框架中的设计模式
🎉欢迎来到Spring专栏:Spring框架中的设计模式 📜其他专栏:java面试 数据结构 源码解读 故障分析 🎬作者简介:大家好,我是小徐🥇☁️博客首页:CSDN主页小徐的博客&#x…...
Java数据结构与算法:邻接矩阵和邻接表
Java数据结构与算法:邻接矩阵和邻接表 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 什么是邻接矩阵和邻接表? 在图的表示中,…...
【温故而知新】JavaScript类、类继承、静态方法
文章目录 前言一、类二、类继承三、静态方法四、热门文章 前言 JavaScript是一种广泛使用的编程语言,主要用于Web开发。它是一种脚本语言,这意味着它不需要像编译语言那样预先编译,而是在运行时解释和执行。JavaScript可以直接在浏览器中运行…...
小黑艰难的前端啃bug之路:内联元素之间的间隙问题
今天开始学习前端项目,遇到了一个Bug调了好久,即使margin为0,但还是有空格。 小黑整理,用四种方法解决了空白问题 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></tit…...
Ubuntu 申请 SSL证书并搭建邮件服务器
文章目录 Log 一、域名连接到泰坦(Titan)电子邮件二、NameSilo Hosting 避坑三、Ubuntu 搭建邮件服务器1. 环境准备2. 域名配置3. 配置 Postfix 和 Dovecot① 安装 Nginx② 安装 Tomcat③ 申请 SSL 证书(Lets Encrypt)④ 配置 pos…...
视频监控方案设计:EasyCVR视频智能监管系统方案技术特点与应用
随着科技的发展,视频监控平台在各个领域的应用越来越广泛。然而,当前的视频监控平台仍存在一些问题,如视频质量不高、监控范围有限、智能化程度不够等。这些问题不仅影响了监控效果,也制约了视频监控平台的发展。 为了解决这些问…...
pyspark.sql.types 中的类型有哪些
对 pyspark.sql.types 中的类型做个记录 1、首先正常使用的时候,我们需要引用他们: from pyspark.sql.types import MapType,StringType # 或者 from pyspark.sql.types import *PySpark SQL TYPES是PySpark模型中的一个类,用于定义PySpark数…...
企业级实验室信息管理系统:SENAITE LIMS 实战深度解析与部署指南
企业级实验室信息管理系统:SENAITE LIMS 实战深度解析与部署指南 【免费下载链接】senaite.lims SENAITE Meta Package 项目地址: https://gitcode.com/gh_mirrors/se/senaite.lims SENAITE LIMS 是一款基于 Plone 和 Python 构建的开源实验室信息管理系统&a…...
记录下在Windows中如何远程将当前Windows部署成PVE
背景: 做这件事实属无奈,公司另外一个分支的一个服务器(目前是Windows)需要跑多个平台的服务,目前Windows Server上部署虚拟机,直接装VMware workstation性能实在是糟糕,迫不得已考虑远程(无显示器、无KVM)将Windows …...
Axure RP中文语言包:3分钟快速汉化你的原型设计工具
Axure RP中文语言包:3分钟快速汉化你的原型设计工具 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包,不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 对于…...
CST、Sspp与色散曲线的关联
CST cst Sspp 色散曲线在电磁仿真领域摸爬滚打过的工程师,对色散曲线这个磨人的小妖精应该都不陌生。今天咱们就来聊聊怎么用CST Studio Suite里的本征模求解器(Eigenmode Solver)提取波导结构的色散曲线,手把手带你从懵逼到上手…...
医疗影像分析中的图像分割避坑指南:从Sobel到Canny的算法选型
医疗影像分析中的图像分割避坑指南:从Sobel到Canny的算法选型 在CT和MRI扫描成为临床诊断常规手段的今天,医疗影像分析正面临前所未有的数据洪流。某三甲医院的放射科主任曾向我展示过一组数据:单台256排CT日均产生超过200GB的DICOM影像&…...
收藏!国内大厂大模型人才招聘真相,小白/程序员入门必看
在大模型技术飞速迭代的当下,国内各大互联网大厂对大模型高端人才的投入力度已然拉满,几乎每家头部企业都推出了针对顶尖人才的专项招聘计划,而这些计划的核心共性,就是“高薪兜底”搭配“高门槛筛选”,成为行业内最引…...
2026年网盘性价比终极对决,10款网盘实测
上传龟速、下载受限、会员条约复杂——这是不少用户在2026年使用网盘时的真实痛点。面对市面上琳琅满目的云存储选项,很多人陷入了选择焦虑。为了解决这一问题,我们将视角聚焦于“效率”与“安全”,对市面上的10款主流网盘进行了系统性实测。…...
隐私优先方案:OpenClaw本地化部署Qwen3.5-9B处理敏感财报分析
隐私优先方案:OpenClaw本地化部署Qwen3.5-9B处理敏感财报分析 1. 为什么金融从业者需要本地化AI方案 作为一名长期关注金融科技自动化的从业者,我深刻理解处理财报数据时的隐私焦虑。去年尝试使用某云端AI服务分析客户财报时,系统突然弹出&…...
别再死记硬背了!用ChatGPT/Claude帮你理解AIGC面试题(附Prompt)
用AI对话引擎拆解AIGC面试核心:从死记硬背到深度理解的范式转移 在准备AIGC算法面试时,大多数候选人都会陷入"八股文"的泥潭——机械记忆概念定义却难以理解技术本质。这种学习方式不仅效率低下,更无法应对面试官深入的技术追问。本…...
手把手教你理解永磁同步电机的Clark与Park变换(附MATLAB仿真代码)
手把手教你理解永磁同步电机的Clark与Park变换(附MATLAB仿真代码) 在工业自动化与电动汽车驱动领域,永磁同步电机(PMSM)凭借其高功率密度和卓越的动态性能,已成为现代运动控制系统的核心部件。然而…...
