android —— PopupWindow

一、常用方法:

1、设置显示的位置

// 一个参数
popupWindow.showAsDropDown(v);
//参数1: popupWindow关联的view
// 参数2和3:相对于关联控件的偏移量popupWindow.showAsDropDown(View anchor, int xoff, int yoff)

2、是否会获取焦点

popupWindow.setFocusable(true);

3、设置背景

 //  popupWindow添加背景色
popupWindow.setBackgroundDrawable(ResourcesCompat.getDrawable(getResources(),R.drawable.img1,getTheme()));

4、关闭

popupWindow.dismiss();

5、设置加载动画

 popupWindow.setAnimationStyle(R.anim.alpha); //设置动画

6、设置触摸使能和popupwindow外部的触摸使能

 popupWindow.setTouchable(true);
popupWindow.setOutsideTouchable(true);

二、实例:

1、新建一个popupwindow要显示使用的xml文件popupview.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"xmlns:app="http://schemas.android.com/apk/res-auto"><androidx.appcompat.widget.AppCompatButtonandroid:id="@+id/mBtn1"android:layout_width="100dp"android:layout_height="50dp"android:text="测试1"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toTopOf="parent"/><androidx.appcompat.widget.AppCompatButtonandroid:id="@+id/mBtn2"android:layout_width="100dp"android:layout_height="50dp"android:text="测试2"android:layout_marginTop="10dp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@id/mBtn1"/>
</androidx.constraintlayout.widget.ConstraintLayout>

2、在activity中使用:

 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_tween_anim);Button button=findViewById(R.id.btn);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {popupClick(v);}});}private void popupClick(View v) {
//        添加对应的viewView popupView = getLayoutInflater().inflate(R.layout.popup_view, null);Button mBtn1=popupView.findViewById(R.id.mBtn1);Button mBtn2=popupView.findViewById(R.id.mBtn2);
//        ViewGroup.LayoutParams.WRAP_CONTENT: popupWindow包裹popupView
//        第四个参数为true,点击空白处popupWindow关闭PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT,true);//        popupWindow添加背景色popupWindow.setBackgroundDrawable(ResourcesCompat.getDrawable(getResources(),R.drawable.img1,getTheme()));popupWindow.setAnimationStyle(R.anim.alpha); //设置动画
//        popupWindow.showAsDropDown(v);
//        参数2和参数3是设置偏移量popupWindow.showAsDropDown(v,popupView.getWidth(),-popupView.getHeight());mBtn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {popupWindow.dismiss();}});mBtn2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {popupWindow.dismiss();}});}

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

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

相关文章

k8s集群内部署nexus

一、前言 在k8s集群中部署nexus服务需要使用到pv、pvc服务来存储nexus的数据&#xff0c;需要使用service服务来提供对外访问nexus服务的端口&#xff0c;需要使用deployment服务来管理nexus服务&#xff0c;接下来就是用这些服务来在k8s集群中搭建nexus&#xff0c;pv服务使用…

解析js之构造函数

一、函数介绍 函数就是将实现特定功能的代码封装起来&#xff0c;当我们需要实现特定功能时&#xff0c;直接调用函数实现即可&#xff0c;不需要每次都写一堆代码&#xff0c;实现代码的复用。 函数的作用&#xff1a; 1、实现功能的封装&#xff0c;提高代码复用率 2、用于构…

【其他】数字孪生简介

数字孪生简介 一、数字孪生的概念二、数字孪生的起源三、数字孪生系统的特点四、作用和结论五、使用方式 一、数字孪生的概念 数字孪生是充分利用物理模型、传感器更新、运行历史等数据&#xff0c;集成多学科、多物理量、多尺度、多概率的仿真过程&#xff0c;在虚拟空间中完…

爱芯派pro通过无线网卡rtl8188eu连接热点

爱芯派pro通过无线网卡rtl8188eu连接热点 爱芯派pro目前的底板的pcie的复位有问题&#xff0c;所以pcie接口无法挂载上去&#xff0c;所以自己购买的rtl8822网卡也用不了&#xff0c;然后想起来自己还有正点原子的rtl8188eu网卡&#xff0c;但是没有和工作人员进行摸索后才知道…

用大白话举例子讲明白区块链

什么是区块链&#xff1f;网上这么说&#xff1a; 区块链是一种分布式数据库技术&#xff0c;它以块的形式记录和存储交易数据&#xff0c;并使用密码学算法保证数据的安全性和不可篡改性。每个块都包含了前一个块的哈希值和自身的交易数据&#xff0c;形成了一个不断增长的链条…

如何禁止外网访问公司内网服务器

对于企业网络&#xff0c;经常会用到访问控制&#xff0c;例如限制员工的上网时间&#xff1f;或如何控制各部门之间的网络互通等等&#xff0c;在实际企业网络项目中经常会遇到&#xff0c;这里面我们就可以用到ACL访问列表控制了&#xff0c;本期我们一起来看下&#xff0c;如…

SpringBoot已经禁掉了循环依赖!

还在问循环依赖嘛&#xff1f;SpringBoot已经禁掉了循环依赖&#xff01; 首发2023-12-18 11:26yuan人生 如果现在面试时还有人问你循环依赖&#xff0c;你就这样怼他&#xff1a;循环依赖是一种代码质量低下的表现&#xff0c;springboot2.6之后的版本已经默认禁用了。 Spr…

保护电脑安全,火绒安全助手 V5.0

火绒安全软件&#xff0c;也称为“火绒安全助手”是一款由中国研发的综合安全软件。火绒安全软件旨在为计算机用户提供全面的安全保护&#xff0c;包括防病毒、反恶意软件、网络安全、系统优化等功能。 火绒安全的功能 病毒防护&#xff1a;火绒提供实时的病毒和恶意软件扫描…

排序算法——快排

快速排序算法最早是由图灵奖获得者Tony Hoare设计出来的,他在形式化方法理论以 及ALGOL.60编程语言的发明中都有卓越的贡献,是20世纪最伟大的计算机科学家之—。 而这快速排序算法只是他众多贡献中的—个小发明而已。 快速排序&#xff08;Quick Sort&#xff09;的基本算法思…

C语言—每日选择题—Day57

指针相关博客 打响指针的第一枪&#xff1a;指针家族-CSDN博客 深入理解&#xff1a;指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 下面程序段&#xff08;&#xff09; char *str[] {"ABC", "DEF", "GHI"}; puts(str[1]); A&#xff1a;A…

Vue2源码梳理:在 import Vue 时干了啥

分析导入入口 在Web应用的 Vue.js 构建过程的 Runtime Compiler 版本下&#xff0c;我们重点关注这个版本它的入口是 src/platforms/web/entry-runtime-with-compiler.js 1 ) entry-runtime-with-compiler.js 入口文件 现在分析一下在 import Vue 的时候&#xff0c;都执行了…

用户行为分析遇到的问题-ubantu16,hadoop3.1.3

用户行为分析传送门 我的版本 ubantu16 hadoop 3.1.3 habse 2.2.2 hive3.1.3 zookeeper3.8.3 sqoop 1.46/1.47 我sqoop把MySQL数据往hbase导数据时候有问题 重磅&#xff1a;大数据课程实验案例&#xff1a;网站用户行为分析&#xff08;免费共享&#xff09; 用户行为分析-小…

5G+云渲染技术:将如何快速推进XR和元宇宙?

XR&#xff08;扩展现实&#xff09;领域正在以惊人的速度增长。目前&#xff0c;到 2024 年&#xff0c;一些专家表示这个行业的价值将达到 3000 亿美元。 这个行业发展如此迅速的部分原因是 XR 将在商业环境中的带来巨大利益。近年来&#xff0c;很多企业遇到了将增强现实和…

RabbitMQ不公平分发问题分析及问题解决

1.不公平分发 1.1 不公平分发策略是什么&#xff1f; 在 RabbitMQ 中&#xff0c;不公平分发&#xff08;Unfair Dispatch&#xff09;是指当多个消费者&#xff08;Consumers&#xff09;同时订阅同一个队列&#xff08;Queue&#xff09;时&#xff0c;消息的分发机制是不公…

I.MX6ULL_Linux_驱动篇(48)linux I2C驱动

I2C 是很常用的一个串行通信接口&#xff0c;用于连接各种外设、传感器等器件。本章我们来学习一下如何在 Linux 下开发 I2C 接口器件驱动&#xff0c;重点是学习 Linux 下的 I2C 驱动框架&#xff0c;按照指定的框架去编写 I2C 设备驱动。本章同样以 I.MX6U-ALPHA 开发板上的 …

逻辑判断 | 判断推理

文章目录 翻译推理前推后(A->B)后推前(B->A)且和或 翻译推理 前推后(A->B) 关键词 如果 … 那么 …若 … 则 …只要 … 就 …为了 … 一定&#xff08;必须&#xff09;…所有 … , … 都… 是 … 的充分条件 后推前(B->A) 关键词 只有 … 才 …除非 …否则不…

Java数据结构-模拟ArrayList集合思想,手写底层源码(1),底层数据结构是数组,编写add添加方法,正序打印和倒叙打印

package com.atguigu.structure; public class Demo02_arrayList {public static void main(String[] args) {MyGenericArrayListV1 arrayListV1 new MyGenericArrayListV1();//arr.add(element:100,index:1);下标越界&#xff0c;无法插入//初始化&#xff08;第一次添加&…

Java 栈和队列的交互实现

文章目录 队列和栈的区别一.用队列模拟实现栈1.1入栈1.2出栈1.3返回栈顶元素1.4判断栈是否为空 二.用栈模拟实现队列2.1 入队2.2出队2.3peek2.4判断队列是否为空 三.完整代码3.1 队列模拟实现栈3.2栈模拟实现队列 队列和栈的区别 栈和队列都是常用的数据结构&#xff0c;它们的…

令人惊叹的代码技巧

在编程世界中&#xff0c;有一些令人惊叹的代码技巧和巧妙的实现方式。以下是一些我见过的令人印象深刻的代码技巧&#xff1a; 函数式编程魔法&#xff1a; 使用函数式编程的一些特性&#xff0c;比如高阶函数、匿名函数和Lambda表达式&#xff0c;可以使代码更为简洁、易读。…

飞天使-k8s知识点1-kubernetes架构简述

文章目录 名词功能要点 k8s核心要素CNCF 云原生框架简介k8s组建介绍 名词 CI 持续集成, 自动化构建和测试&#xff1a;通过使用自动化构建工具和自动化测试套件&#xff0c;持续集成可以帮助开发人员自动构建和测试他们的代码。这样可以快速检测到潜在的问题&#xff0c;并及早…