Android - PopupWindow
PopupWindow就是一个可以显示在当前界面上的浮动容器,它可以用来显示任意一个View,同时还可以指定显示的位置。
下面写一个显示下拉的例子:
PopupWindow mpopupWindow;
private void showPop() {
// 要填充到PopupWindow里的View(自己写的随便的一个布局)
View view = View.inflate(context, R.layout.popup, null);
// 上面view中的ListView控件,因为是展示下拉效果,所以基本上都使用ListView或GridView
ListView lv = (ListView) view.findViewById(R.id.lv);
// lv的适配器(需要自己实现)
MyAdapter childAdapter = new MyAdapter();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// 这里实现你的点击事件
if (mpopupWindow != null) {
mpopupWindow.dismiss();
}
}
});
lv.setAdapter(childAdapter);
if (mpopupWindow == null) {
mpopupWindow = new PopupWindow(context);
mpopupWindow
.setWidth(android.view.ViewGroup.LayoutParams.MATCH_PARENT);
mpopupWindow
.setHeight(android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
mpopupWindow.setBackgroundDrawable(new BitmapDrawable());
mpopupWindow.setFocusable(true);
mpopupWindow.setOutsideTouchable(true);
mpopupWindow.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss() {
// 消失时调整屏幕亮度
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.alpha = 1f;
getWindow().setAttributes(lp);
// PopupWindow消失时执行
}
});
}
// 显示pop同时让屏幕变暗
new Handler() {
}.postDelayed(new Runnable() {
@Override
public void run() {
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.alpha = 0.6f;
getWindow().setAttributes(lp);
}
}, 100);
mpopupWindow.setContentView(view);
mpopupWindow.showAsDropDown("这里是一个View,你想让这个PopupWindow显示在谁下面就写谁");
mpopupWindow.update();
}
代码不全,需要自己写一个xml布局和ListView适配器,但大致的使用方法就是这样。
Android - PopupWindow的更多相关文章
- Android PopupWindow Dialog 关于 is your activity running 崩溃详解
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activi ...
- Android PopupWindow的使用和分析
Android PopupWindow的使用和分析 PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activi ...
- Android PopupWindow的使用技巧(转)
Android PopupWindow的使用技巧 PopupWindow是Android上自定义弹出窗口,使用起来很方便. PopupWindow的构造函数为 public PopupWindow(V ...
- Android popupwindow使用心得(一)
最近项目中好多地方用到popupwindow,感觉这个控件还是非常重要的.所以把使用心得总结下,废话不多说,直接上代码. public class MainActivity extends Activ ...
- 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)
说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题, ...
- Android -- PopupWindow(其中嵌套ListView 可以被点击)
1. 效果图
- android PopupWindow使用实例
注:点空白或菜单外隐藏popupwindow菜单: 但是,若点击有点击事件的组件则要再写代码手动隐藏: @Override public boolean onTouchEvent(MotionEven ...
- Android PopupWindow使用之地区、学校选择二级联动
最近在做一个社交类APP时,希望用户在注册时根据地区来选择自己所在的学校,由于用户手动输入学校,可能会出现各种问题,不利于后面对用户信息的统计.于是决定在客户端做好设置,用户只要根据地区来选择就好.第 ...
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
本实例弹出窗口主要是继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计.弹出效果主要使用了translate和alpha样式实现,具体实习如下: 第一步:设计弹出窗口xml: &l ...
随机推荐
- struts2笔记4
1.自定义struts拦截器 应用场景:如果用户登陆后可以访问action中的所有方法,如果用户没有登陆不允许访问action中的方法,并且提示“你没有操作权限” 1)两个页面,一个用户登陆user. ...
- Linux内核内存管理子系统分析【转】
本文转载自:http://blog.csdn.net/coding__madman/article/details/51298718 版权声明:本文为博主原创文章,未经博主允许不得转载. 还是那张熟悉 ...
- mac上安装Navicat Premium 破解版+汉化包
Navicat是一款非常强大的sql分析管理工具.以前一直在windows上面使用. 由于工作的需要,我也是折腾出了这不易的mac破解版.下了好多网上的版本,亲测这个可用. 俗话说:工欲善其事,必先利 ...
- Linux之常用快捷键
tab:自动补齐命令或者路径 ESC+u:将字符小写变大写 ctrl+s:在终端中冻结stdin ctrl+q:在终端中恢复stdin ctrl+a:光标移动到行首 ctrl+e:光标移动到行尾 ct ...
- Oracle 流复制实践笔记
最近因为业务需求,需要在两个数据库之间做双向实时同步,遂实践了一把Oracle的流复制,遇到了很多疑难问题,最终也貌似成功,现记录如下. 我是使用OEM来实现流复制的. 10.进行流复制的两个数据库的 ...
- windows 8.1无人值守安装
上个星期网上泄漏了微软最新的操作系统Windows 8.1,我便迫不及待的下载下来进行体验.发现其安装过程交互次数太多,太过漫长,遂研究了一下无人值守安装,现将成果记录如下. 一. 微软有专门的布署工 ...
- android常见问题
1.广播接收器中启动Activity,需要在intent中添加FLAG_ACTIVITY_NEW_TASK /** * Demo描述: * 在BroadcastReceiver中启动Activity的 ...
- 远程读取json数据并写入数据库
参考:http://www.jb51.net/article/39937.htm $curlPost = 'a=1&b=2';//模拟POST数据$ch = curl_init();curl_ ...
- jsp标签精华(持续更新中)
<%@ taglib uri="/struts-tags" prefix="s" %> <%@ taglib uri="http:/ ...
- osg渲染数据高程文件
使用gdal解析DEM文件,将高程数据转换为HeightField对象,然后在osg渲染. 1 源代码 #include <gdal_priv.h> #include <osgVie ...