android学习——popupWindow 在指定位置上的显示
先看效果图,免得浪费大家时间,看是不是想要的效果 。
直接上代码 ,核心方法。
- private void showPopupWindow(View parent) {
- if (popupWindow == null) {
- LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- view = layoutInflater.inflate(R.layout.group_list, null);
- lv_group = (ListView) view.findViewById(R.id.lvGroup);
- Collections.reverse(groups);
- GroupAdapter groupAdapter = new GroupAdapter(this, groups);
- lv_group.setAdapter(groupAdapter);
- popupWindow = new PopupWindow(view, 200, 220);
- }
- popupWindow.setFocusable(true);
- popupWindow.setOutsideTouchable(true);
- // 这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景
- popupWindow.setBackgroundDrawable(new BitmapDrawable());
- WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
- int xPos = -popupWindow.getWidth() / 2
- + getCustomTitle().getCenter().getWidth() / 2;
- popupWindow.showAsDropDown(parent, xPos, 4);
- lv_group.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view,
- int position, long id) {
- loadNew(((StringItem)(groups.get(position))).getId());
- if (popupWindow != null)
- popupWindow.dismiss();
- }
- });
- }
这篇是转载的 。
popupWindow 在控件的各个方向上的显示(上、下、左、右),主要用到popupWindow 的showAtLocation()方法:
在控件的上方:
- private void showPopUp(View v) {
- LinearLayout layout = new LinearLayout(this);
- layout.setBackgroundColor(Color.GRAY);
- TextView tv = new TextView(this);
- tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
- tv.setText("I'm a pop -----------------------------!");
- tv.setTextColor(Color.WHITE);
- layout.addView(tv);
- popupWindow = new PopupWindow(layout,120,120);
- popupWindow.setFocusable(true);
- popupWindow.setOutsideTouchable(true);
- popupWindow.setBackgroundDrawable(new BitmapDrawable());
- int[] location = new int[2];
- v.getLocationOnScreen(location);
- popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popupWindow.getHeight());
- }
在控件的其他方向上显示只需修改最后一行代码即可,如:
下方:popupWindow.showAsDropDown(v);
左边:
- popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0]-popupWindow.getWidth(), location[1]);
右边:
- popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0]+v.getWidth(), location[1]);
转载于:https://www.cnblogs.com/qwer520/p/4911243.html
android学习——popupWindow 在指定位置上的显示相关推荐
- 计算Dataframe指定位置上的分位数:df.quantile()
[小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] 计算Dataframe指定位置上的分位数 df.quantile() 选择题 关于以下代码说 ...
- unity 在图片的指定位置上添加按钮_Unity-利用免费资源快捷实现第三人称角色控制...
by 临界荷 本例目标:学习使用unity商店免费资源中的模型和代码,轻松快捷实现第三人称视角玩家多种行为的设定.举一反三,可方便灵活地添加到自己的3D模型(绑定了骨骼和动作的人物模型,不支持动物模型 ...
- android gridview滚动条位置,Android GridView滚动到指定位置
当一个列表项目很多,并且每个项目可以进入到其它Activity或者Fragment时,保存之前列表的位置是一个比较不错的功能, 今天研究了一下怎么保存浏览位置,发现GridView和它的父类中有4个相 ...
- Android 在图片的指定位置添加标记
这些天,项目里加了一个功能效果,场景是: 假如有一个家居图片,图片里,有各样的家居用品: 桌子,毛巾,花瓶等等,需要在指定的商品处添加标记,方便用户直接看到商品,点击该标记,可以进入到商品详情页 .实 ...
- android 动画 图片从指定位置飞到指定位置
private ViewGroup anim_mask_layout;//动画层 private ImageView sendFeather;// 这是在界面上跑的小图片 </pre>&l ...
- Android RecyclerView 滑动到指定位置 RecyclerView 滑动到顶部
志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的 ...
- Android学习之PhotoView在Eclipse上的使用
一.今天,来介绍一个开源框架PhotoView,使用十分方便快捷,此框架可以实现以下这些功能: (1).android图片的浏览功能. (2).图片放大缩小功能,可以使用PhotoView双击放大,双 ...
- android学习笔记---32_文件断点上传器,解决多用户并发,以及自定义协议,注意协议中的漏洞
32_文件断点上传器 --------------------------- 1.当文件很大的时候就无法通过http协议进行上传了,因为get,post的安全原因,很多服 务器会 禁止这些协议,而 ...
- Android学习-使用WebView在app上显示网页
通过Intent调用系统浏览器 Uri uri = Uri.parse(url);//url为你要链接的地址 Intent intent = new Intent(Intent.ACTION_VIEW ...
最新文章
- pycharm导包错误
- Java项目:清新论坛系统(java+SSM+mysql+maven+tomcat)
- BZOJ 4025 二分图
- Bootstrap:关于bootstrap单页面中多Modal的问题
- python3.4.4 配置opencv3.1 解决pip版本不够的问题
- 寻找数组中的第二大数
- ASP.NET Core + Angular 2 Template for Visual Studio
- 【每日一题】7月3日精讲—毒瘤xor
- Powershell: powershell 获取本机IP地址
- debian stretch + kernel 4.4 固件发布(支持硬件加速),可安装kodi
- BZOJ2434: [Noi2011]阿狸的打字机
- [Xcelsius]BI展现工具之Xcelsius
- 操作系统形式化验证实践教程(2) - HOL列表与集合
- 基于卷积神经网络和小波变换的视频监控中的火灾探测
- [bzoj1022] [SHOI2008]小约翰的游戏John
- 启动车子温车_冷车和热车难打火可以不修,但温车不打火必须得修
- 开设生物医学工程的高校(按区域划分)
- 计算机网络的五层模型和七层模型
- uniGUI获取设备信息
- mysql查询当年年份
热门文章
- 递归遍历文件及子文件夹下的文件(该代码是复制过来修改过的,如果有侵作者权的话,请作者联系我,立即删除)...
- SQL SERVER数据库开发之触发器的应用
- jsp连接Sql Server 2000数据库
- ★LeetCode(104)——二叉树的最大深度(JavaScript)
- mysql自增主键返回---创建成功后返回用户的ID
- Vue报错:3 errors and 0 warnings potentially fixable with the `--fix` option.
- npm notice created a lockfile as package-lock.json. You should commit this file.
- 为什么现在的年轻人越来越不愿意结婚、生子了?
- 买了小区一楼的感受是怎样的?
- 为什么有科学家怀疑太阳系是被设计出来的