摘自:安卓APP_ 控件(9)—— PopupWindow弹窗
作者:丶PURSUING
发布时间: 2021-04-05 14:41:35
网址:https://blog.csdn.net/weixin_44742824/article/details/115405555

实现效果如下:

点击触发弹窗的按钮,弹窗出现。弹窗里的按钮设置了监听事件,当点击“上海”时,弹窗不退出。点击空白处弹窗退出。因为“北京”设置了“dismiss”,所以点击“北京”直接退出弹窗。


具体细节还是通过代码呈现:

MainActivity.java

public class MainActivity extends AppCompatActivity {private static final String TAG = "zhua";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void zhuaClick(View view) {/*第一个参数contentView:弹窗显示的布局,在此之前要在layout创建布局.xml*/View popupView = getLayoutInflater().inflate(R.layout.popup_view, null);//添加view//为了实现popupWindow中的按钮事件,要先获取按钮监听Button btn1 = popupView.findViewById(R.id.btn1);Button btn2 = popupView.findViewById(R.id.btn2);/*1.为了方便,都用带3参或者4参的构造方法,否则后面还要用对象进行设置2.根据popupWindow的一个构造方法进行配置,宽、高可以直接写数字,比如300,300但是为了让popupWindow刚好包裹住popupView,一般如下设置:跟xml中类似,都是为了内容适应窗口3.true为获取焦点,即点空白处可以退出popupWindow*/PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT,true);/*设置这个背景会导致虚拟机崩溃?*///popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.test1));/*1.想要显示弹窗,还要调用show.2.view指的是“弹出PopupWindow”按钮,一般不使用偏移,直接显示在正下方。popupWindow.showAsDropDown(view,view.getWidth(),view.getHeight());*/popupWindow.showAsDropDown(view);//弹窗直接显示在view的正下方//设置按钮监听btn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Log.e(TAG, "onClick: 你是住在上海吗" );}});btn2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Log.e(TAG, "onClick: 你是住在北京吗" );//一般popupWindow按钮事件点击一个选项window就消失:popupWindow.dismiss();}});/*其他:设置popupwindow显示动画,只需要传入后续所学的动画.xml就行popupWindow.setAnimationStyle(int animationStyle);*/}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="弹出PopupWindow            "android:onClick="zhuaClick"/></LinearLayout>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在res下的layout创建的:popup_view.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@mipmap/ic_launcher"android:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/btn1"android:padding="10dp"android:text="上海"android:textSize="18sp"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/btn2"android:padding="10dp"android:text="北京"android:textSize="18sp"/></LinearLayout>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

安卓APP_ 控件(9)—— PopupWindow弹窗相关推荐

  1. 安卓APP_ 控件(11)webView —— 简单应用:显示网页

    摘自:安卓APP_ 控件(11)webView -- 简单应用:显示网页 作者:丶PURSUING 发布时间: 2021-05-11 11:50:52 网址:https://blog.csdn.net ...

  2. 安卓APP_ 控件(10)—— ListView可上下滑动的列表(重要)与ViewHolder优化

    摘自:安卓APP_ 控件(10)-- ListView可上下滑动的列表(重要)与ViewHolder优化 作者:丶PURSUING 发布时间: 2021-04-12 23:28:27 网址:https ...

  3. 安卓APP_ 控件(8)—— AlertDialog

    摘自:安卓APP_ 控件(8)-- AlertDialog 作者:丶PURSUING 发布时间: 2021-04-02 18:13:20 网址:https://blog.csdn.net/weixin ...

  4. 安卓APP_ 控件(7)——Toolbar栏目样式

    摘自:安卓APP_ 控件(7)--Toolbar栏目样式 作者:丶PURSUING 发布时间: 2021-04-02 15:42:07 网址:https://blog.csdn.net/weixin_ ...

  5. 安卓APP_ 控件(6)—— Notification通知

    摘自:安卓APP_ 控件(6)-- Notification通知 作者:丶PURSUING 发布时间: 2021-04-02 00:30:14 网址:https://blog.csdn.net/wei ...

  6. 安卓APP_ 控件(5)—— ProgressBar

    摘自:安卓APP_ 控件(5)-- ProgressBar 作者:丶PURSUING 发布时间: 2021-03-31 13:03:07 网址:https://blog.csdn.net/weixin ...

  7. 安卓APP_ 控件(4)—— ImageView

    摘自:安卓APP_ 控件(4)-- ImageView 作者:丶PURSUING 发布时间: 2021-03-29 21:52:06 网址:https://blog.csdn.net/weixin_4 ...

  8. 安卓APP_ 控件(3)—— EditText

    摘自:安卓APP_ 控件(3)-- EditText 作者:丶PURSUING 发布时间: 2021-03-29 18:43:40 网址:https://blog.csdn.net/weixin_44 ...

  9. 安卓APP_ 控件(2)—— Button

    摘自:安卓APP_ 控件(2)-- Button 作者:丶PURSUING 发布时间: 2021-03-29 14:20:54 网址:https://blog.csdn.net/weixin_4474 ...

最新文章

  1. Windows下批量删除旧文件、清除缓存文件、解救C盘、拒绝C盘爆炸
  2. Android UI开发第五篇——自定义列表
  3. pe修改rpc服务器不可用,ABBYY FineReader 12出现“RPC服务不可用”怎么办
  4. [Linux]消息队列
  5. java 反射调用方法_java的反射机制,以及通过反射获取方法,变量等操作
  6. MiniDao 比Mybatis还灵活实用的J2EE 持久层轻量级解决方案
  7. 利用Java调用openSMILE批量处理音频文件
  8. 动态加载so库的实现方法与问题处理
  9. 现代操作系统原理与实践03:操作系统结构
  10. Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换
  11. 仿视频字幕弹幕网站 – Miko二次元动漫视频网站源码 视频播放带源码
  12. spyder python下载_Spyder Python软件-Spyder Python下载-最火手机站
  13. ant组件中select默认选中某一项
  14. 等保2.0 等保二级基本要求与测评控制点
  15. 怎样有效提高记忆力?
  16. EN 13329强化木地板规范要求和试验方法
  17. 关于三栏式布局的几种方式
  18. 2021年井冈山中学高考成绩查询入口,【高考成绩】2019年高考成绩揭晓,井冈山中学取得好成绩!...
  19. 【JavaEE基础与高级 第42章】C3P0连接数据库操作顺序
  20. JWT简介、JWT优缺点、JWT使用方法、.NET6使用JWT示例、JWT与Session对比

热门文章

  1. 内存管理1retain和release
  2. 汇编程序:将字符串中所有大写字符转为小写
  3. RTMP协议中文翻译(首发)(转)
  4. 微服务扩展新途径:Messaging
  5. 完整国内城市js级联选择
  6. 动手写的Python的HTML语法分析器(面向对象)
  7. 今天去团省委维护网站
  8. 中毒,重装,杀毒……最近一段时间,很烦的一件事,不断重复……
  9. Linux链接库三(C跟C++之间动态库的相互调用)
  10. cvMorphology形态学原理解析及源码分析