2.依附弹窗(AttachListPopup)

愿你出走半生,归来仍是少年! 

环境:.NET 7

        基于基础的Popup对象实现的依附于某个控件的弹窗,弹窗可呈现数组对象,达到较好的选择交互效果。

1.布局

        通过Border实现圆角边框轮廓,然后通过内部的ListView实现列表展示。

<?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.AttachListPopup"xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"x:Name="popup" Color="Transparent" ><VerticalStackLayout x:Name="outLyt"     BackgroundColor="Transparent"><Border    BackgroundColor="White"  StrokeThickness="0"  StrokeShape="RoundRectangle 10,10,10,10"  HorizontalOptions="Center"><VerticalStackLayout  ><ListView    x:Name="lv"    ItemSelected="lv_ItemSelected"  VerticalScrollBarVisibility="Never"><ListView.ItemTemplate><DataTemplate><TextCell   Text="{Binding}"   TextColor="Black" ></TextCell></DataTemplate></ListView.ItemTemplate></ListView></VerticalStackLayout></Border></VerticalStackLayout></toolkit:Popup>

2.代码

        通过传入要依附的控件对象以及需要进行选择的文本集合,可实现弹窗的构建。在选择后通过CloseAsync方法返回选择的数据序号。

/// <summary>
/// 依附列表popup
/// </summary>
public partial class AttachListPopup : CommunityToolkit.Maui.Views.Popup
{/// <summary>/// /// </summary>/// <param name="items">选项</param>/// <param name="anchorView">依附的控件</param>/// <param name="marginLeft">左侧间隔</param>/// <param name="marginBottom">底部间隔</param>/// <param name="width">宽度</param>public AttachListPopup(List<string> items ,View anchorView,double marginLeft,double marginBottom,double width=140){InitializeComponent();lv.ItemsSource = items;this.Anchor=anchorView;outLyt.Padding = new Thickness(anchorView.Width+ marginLeft, 0, 0,  marginBottom);outLyt.WidthRequest = anchorView.Width +marginLeft+ width;}private async void lv_ItemSelected(object sender, SelectedItemChangedEventArgs e){await CloseAsync(e.SelectedItemIndex);}
}

3.使用

var allBTiles = smv.BasicTiles.Select(p => p.Last().DisplayName).ToList();var popup = new AttachListPopup(allBTiles, sender as Button, 12, 20);var result = await this.ShowPopupAsync(popup);if (result != null)
{await smv.ChangedBasicTile((int)result);await Toast.Make($"底图已切换为{allBTiles[(int)result]}").Show();
}

4.效果

        此处展示是基于Android平台,实现点击功能按钮后展示弹窗并选择信息给出反馈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化防DDoS脚本

简介 DDoS &#xff08;分布式拒绝服务攻击&#xff09;是一种恶意的网络攻击&#xff0c;旨在通过占用目标系统的资源&#xff0c;使其无法提供正常的服务。在DDoS攻击中&#xff0c;攻击者通常控制大量的被感染的计算机或其他网络设备&#xff0c;同时将它们协调起来向目标系…

Java项目:15 springboot vue的智慧养老手表管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统共分为两个角色&#xff1a;家长&#xff0c;养老院管理员 框架&#xff1a;springboot、mybatis、vue 数据库&#xff1a;mysql 5.7&#xf…

Linux本地部署SVN服务结合内网穿透实现远程访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

uniapp上传音频文件到服务器

视频教程地址&#xff1a; 【uniapp录音上传组件&#xff0c;将录音上传到django服务器】 https://www.bilibili.com/video/BV1wi4y1p7FL/?share_sourcecopy_web&vd_sourcee66c0e33402a09ca7ae1f0ed3d5ecf7c uniapp 录制音频文件上传到django服务器保存到服务器 &#xf…

docker 网络及如何资源(CPU/内存/磁盘)控制

安装Docker时&#xff0c;它会自动创建三个网络&#xff0c;bridge&#xff08;创建容器默认连接到此网络&#xff09;、 none 、host docker网络模式 Host 容器与宿主机共享网络namespace&#xff0c;即容器和宿主机使用同一个IP、端口范围&#xff08;容器与宿主机或其他使…

第140期 为什么有人无脑吹分布式(20240126)

数据库管理140期 2024-01-26 第140期 为什么有人无脑吹分布式&#xff08;20240126&#xff09;1 环境2 场景3 首席补刀总结 第140期 为什么有人无脑吹分布式&#xff08;20240126&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09; Oracle ACE Associa…

C++ 设计模式之解释器模式

【声明】本题目来源于卡码网&#xff08;卡码网KamaCoder&#xff09; 【提示&#xff1a;如果不想看文字介绍&#xff0c;可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 --什么是解释器模式&#xff08;第22种设计模式&#xff09; 解释器模式&#xff08;Interpreter…

CodeGPT

GitCode - 开发者的代码家园 gitcode.com/ inscode.csdn.net/liujiaping/java_1706242128563/edit?openFileMain.java&editTypelite marketplace.visualstudio.com/items?itemNameCSDN.csdn-codegpt&spm1018.2226.3001.9836&extra%5Butm_source%5Dvip_chatgpt_c…

实力上榜!安全狗入选《CCSIP 2023中国网络安全行业业全景册(第六版)》多个细项

1月24日&#xff0c;Freebuf发布了《CCSIP 2023中国网络安全行业业全景册&#xff08;第六版&#xff09;》。 作为国内云原生安全领导厂商&#xff0c;安全狗也入选多个细分领域。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;创办于2013年&…

学习gin框架知识的小注意点

Gin框架的初始化 有些项目中 初始化gin框架写的是&#xff1a; r : gin.New() r.Use(logger.GinLogger(), logger.GinRecovery(true)) 而不是r : gin.Default() 为什么呢&#xff1f; 点击进入Default源码发现其实他也是new两个中间件&#xff0c;&#xff08;Logger&…

【并发编程】锁死的问题——如何解决?以及如何避免?

目录 1.如何解决 一、死锁的定义和原因 1.1 定义 1.2 原因 二、常见的死锁场景 2.1 线程间相互等待资源 2.2 嵌套锁的循环等待 2.3 对资源的有序请求 三、死锁排查的方法 3.1 使用jstack命令 3.2 使用jconsole 3.3 使用VisualVM 四、常见的解决方案 4.1 避免嵌套锁…

STK姿态分析(一)矢量组件

文章目录 内容简介一、卫星矢量二、卫星坐标平面三、卫星姿态球面 – 内容简介 接下来一系列文章将进行STK目标&#xff08;卫星、导弹、火箭、飞机、船舶&#xff09;姿态分析的仿真。本篇将使用矢量&#xff08;vector&#xff09;组件对卫星姿态、传感器指向等进行3D可视化…

注册表学习——注册表结构

简介&#xff1a;注册表是由很多项和值构成的。 HEKY_USERS&#xff08;HKU&#xff09; 主要保存默认用户及当前登录用户配置信息。 .DEFAULT 该项是针对未来创建的新用户所保存的默认配置项。 S-1-5-18等项 这些项叫作安全标识符&#xff08;SID&#xff09;用来表示Windows操…

Linux(linux版本 centos 7) 下安装 oracle 19c详细教程(新手小白易上手)

一、安装前准备 1、下载预安装包 wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm预安装包下载成功 2、下载oracle安装包 下载地址如下 https://www.oracle.com/cn/database/technologies…

渲染与创造之美:互为表里的艺术

在五彩斑斓的艺术世界中&#xff0c;渲染与创造是两股不可或缺的力量。它们之间的关系&#xff0c;恰如弓与箭&#xff0c;互为表里&#xff0c;共同塑造出无数令人叹为观止的视觉景象。创造之美是指通过创新思维和创造力&#xff0c;将想象具象化为现实&#xff0c;创造出新的…

引领未来:云原生在产品、架构与商业模式中的创新与应用

文章目录 一、云原生产品创新二、云原生架构设计三、云原生商业模式变革《云原生落地 产品、架构与商业模式》适读人群编辑推荐内容简介目录 随着云计算技术的不断发展&#xff0c;云原生已经成为企业数字化转型的重要方向。接下来将从产品、架构和商业模式三个方面&#xff0c…

最小覆盖子串(Leetcode76)

例题&#xff1a; 分析: 比如现在有字符串&#xff08;s&#xff09;&#xff0c;s "ADOBECODEBANC", 给出目标字符串 t "ABC", 题目就是要从原始字符串&#xff08;s&#xff09;中找到一个子串&#xff08;res&#xff09;可以覆盖目标字符串 t &…

微信小程序(十六)slot插槽

注释很详细&#xff0c;直接上代码 上一篇 温馨提醒&#xff1a;此篇需要自定义组件的基础&#xff0c;如果不清楚请先看上一篇 新增内容&#xff1a; 1.单个插槽 2.多个插槽 单个插糟 源码&#xff1a; myNav.wxml <view class"navigationBar custom-class">…

师如灯塔,照我前行:我在誉天的RHCA认证之旅

时光荏苒&#xff0c;岁月如梭。2022年10月&#xff0c;我踏上了通向RHCA&#xff08;Red Hat Certified Architect&#xff09;证书的征程。2023年11月&#xff0c;我成功拿到了RHCA证书&#xff0c;也给这段旅程画上了圆满的句号。 而在这充满挑战和成长的旅程中&#xff0c;…

防火墙ip配置

如图所示需要配置该拓扑的ip 1.首先在交换机7上创建vlan 2 3 [Huanwei]vlan batch 2 3 2.分别进入0/0/3 和0/0/2接口 [Huawei-GigabitEthernet0/0/3]port link-type access [Huawei-GigabitEthernet0/0/2]port link-type access 3.定义所属vlan [Huawei-GigabitEthernet0…