android--------Popupwindow的使用
PopupWindow在Android.widget包下,项目中经常会使用到PopupWindow做菜单选项, PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。
效果图:
MainActivity.java
public class MainActivity extends Activityimplements OnClickListener { private PopupWindowm PopWindow;
private View parentView;
private Context context;
ImageView mImageViewBar; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
context = this;
initView();
} private void initView() {
// TODOAuto-generated method stub
parentView =getLayoutInflater().inflate(R.layout.activity_main,null);
mImageViewBar =(ImageView) findViewById(R.id.menu);
mImageViewBar.setOnClickListener(this);
showPopupWindow();
} private void showPopupWindow() {
LayoutInflater inflater = (LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View contentView =inflater.inflate(R.layout.popuplayout,null);
mPopWindow = newPopupWindow(contentView);
mPopWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
mPopWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mPopWindow = newPopupWindow();
// 设置SelectPicPopupWindow的View
mPopWindow.setContentView(contentView);
// 设置SelectPicPopupWindow弹出窗体的宽
mPopWindow.setWidth(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体的高
mPopWindow.setHeight(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体可点击
mPopWindow.setFocusable(true);
mPopWindow.setOutsideTouchable(true);
// 刷新状态
mPopWindow.update();
// 实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0000000000);
// 点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener,设置其他控件变化等操作
mPopWindow.setBackgroundDrawable(dw);
contentView.findViewById(R.id.memu1).setOnClickListener(this);
contentView.findViewById(R.id.memu2).setOnClickListener(this);
contentView.findViewById(R.id.memu3).setOnClickListener(this);
} @Override
public void onClick(View v) {
int id =v.getId();
switch (id) {
case R.id.menu:
mPopWindow.showAsDropDown(mImageViewBar);
break;
case R.id.memu1: {
Toast.makeText(context,"消息", Toast.LENGTH_SHORT).show();
mPopWindow.dismiss();
}
break;
case R.id.memu2: {
Toast.makeText(context,"收藏", Toast.LENGTH_SHORT).show();
mPopWindow.dismiss();
}
break;
case R.id.memu3: {
Toast.makeText(context,"首页", Toast.LENGTH_SHORT).show();
mPopWindow.dismiss();
}
break;
}
} @Override
protected void onDestroy() {
// TODOAuto-generated method stub
super.onDestroy();
mPopWindow.dismiss();
}
}
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
PopupWindow就是一个可以显示在当前界面上的浮动容器,它可以用来显示任意一个View,同时还可以指定显示的位置. 下面写一个显示下拉的例子: PopupWindow mpopupWindow; ...
- Android PopupWindow使用之地区、学校选择二级联动
最近在做一个社交类APP时,希望用户在注册时根据地区来选择自己所在的学校,由于用户手动输入学校,可能会出现各种问题,不利于后面对用户信息的统计.于是决定在客户端做好设置,用户只要根据地区来选择就好.第 ...
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
本实例弹出窗口主要是继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计.弹出效果主要使用了translate和alpha样式实现,具体实习如下: 第一步:设计弹出窗口xml: &l ...
随机推荐
- python之路----面向对象进阶一
一.isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() i ...
- mysql 触发器 trigger用法 two (稍微复杂的)
触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/befo ...
- 20145304 Exp8 Web基础
20145304 Exp8 Web基础 实验后回答问题 (1)什么是表单 表单用于搜集不同类型的用户输入,由三个基本组成部分表单标签.表单域.表单按钮.表单提交有两种方法,分别是get和post,使用 ...
- React 回忆录(四)React 中的状态管理
Hi 各位,欢迎来到 React 回忆录!
- Autoafc 手动获取接口实例
demo: using Autofac; using Autofac.Integration.Mvc; using Rongzi.RZR.Huoke.Repository; using Rongzi. ...
- jsp拾遗
JSP九大内置对象,七大动作,三大指令 https://blog.csdn.net/qq_34337272/article/details/64310849 JSP页面的静态包含和动态包含 https ...
- 【maven】maven打包deploy时候报错:Connect to repo.maven.apache.org:443
使用maven打包报错如下: [ERROR] Plugin org.springframework.boot:spring-boot-maven-plugin:1.5.4.RELEASE or one ...
- js分号的重要性
js中语句末尾可以不加分号, 很多时候在做练习或写几个页面时,我都是不会加的.虽然知道加了会好一点.但就是觉得很敲一句就要多按一次分号键(;)来加分号,而不加也不怎么样,然后就不想加了. 也听说在对j ...
- javascript版的quine程序-返回自身源码
引用自Wikipedia: 一个quine是一个计算机程序,它不接受任何输入,且唯一的输出就是自身的源代码. @cowboy (Ben Alman) 给出了一个用JavaScript写的quine程序 ...
- 【异常记录(八)】 This operation requires IIS integrated pipeline mode.
突然提示这个Error: Server Error in '/' Application. This operation requires IIS integrated pipeline mode. ...